我想知道是否有人可以向我展示开发可用作观察变换的4x4变换矩阵的步骤。摄像头/观察变换矩阵
相机在(1,2,2)^ T 相机指向方向(0,1,0)^ T 向上矢量,它将被映射到正y方向图像,是方向(0; 0; 1)^ T。
我查看了我的笔记,不明白如何解决这些类型的问题,因为我知道它们在计算机图形学中很常见。
我想知道是否有人可以向我展示开发可用作观察变换的4x4变换矩阵的步骤。摄像头/观察变换矩阵
相机在(1,2,2)^ T 相机指向方向(0,1,0)^ T 向上矢量,它将被映射到正y方向图像,是方向(0; 0; 1)^ T。
我查看了我的笔记,不明白如何解决这些类型的问题,因为我知道它们在计算机图形学中很常见。
您可以使用公式here,只填充矩阵并将每个矩阵依次相乘,直到您构建了变换矩阵。 (旋转矩阵可能有错误,请仔细检查公式here。)
您试图解决什么类型的问题?你没有真正问过一个狭隘的问题。
摄像机位置将与翻译矩阵进行设置:
[1 0 0 X]
[0 1 0 Y]
[0 0 1 Z]
[0 0 0 1]
代[1,2,2]^T为[X,Y,Z]^T
会给你一个平移矩阵:
[1 0 0 1]
[0 1 0 2]
[0 0 1 2]
[0 0 0 1]
这可以通过输入矢量相乘
[x y z 1]^T
转化这一点上,像这样:
[1 0 0 1] [x] = x+1
[0 1 0 2] [y] = y+2
[0 0 1 2] [z] = z+2
[0 0 0 1] [1] = 1
对于输入向量[4,5,6,1],这将得到[5,7,8,1]。
看到它只是通过上面插入的X,Y,Z移动或转换输入x,y,z点(现在忽略最后一个组件)。
记住乘以向量v一个矩阵M为您提供了一个载体,把它叫做p
p = M v
认为这是调用函数,有点像P = SIN(X),而是P = M(v)其中M是一个变换函数,它恰好是矩阵的形式,因为我们关心的变换可以严格地由线性算子表示,这是一种说法矩阵乘法的奇妙方式,这只是一种奇特的方式说4个标量乘法的总和。要将这些矩阵变换链接为函数调用,只需将它们相继乘以它们即可。 (请注意,这是一种简化,因为我们需要进行分割来进行透视变换,所以我们用4x4矩阵而不是仅仅3x3来欺骗和制造技巧 - 这就是奇怪的术语“均匀坐标”的含义。)
你的班级是否有教科书或讲义(如果它在线,你可以链接到它)?我会想象这些材料会涵盖其他转换并可能提供示例。你可以尝试一下,用上面的4×4矩阵乘以一个向量v = [-9 -8 -7],看看你从中得到了什么[x y z w]向量。然后尝试插入旋转矩阵的其他值。
如果翻译矩阵不是0,0,0,您可能会遇到棘手的比特,您需要将旋转矩阵与翻译矩阵按照正确的顺序相乘:如果翻译矩阵不是0,0,0,则R T将是与T R不同的矩阵。
问题是要求我开发一个4 x 4矩阵,可以用作这些参数的视图转换,并显示我的工作。 – Joey 2011-01-31 06:37:34