Math 图形管线视图变换

Math 图形管线视图变换,math,matrix,graphics,3d,transformation,Math,Matrix,Graphics,3d,Transformation,试图更好地理解视图转换,使用右手法则。如果有人可以帮助澄清给定的幻灯片。例如,什么是C,为什么它是负数,为什么对矩阵应用逆,最后,这些矩阵串联的最简单形式是什么。谢谢你的时间和帮助! 假设我们有一个3D点P=(Px,Py,Pz),在真实坐标系中 让u为指向“左”的矢量(如摄像机所见) 让v为指向“上”的矢量(如摄像机所见) 设w为指向“前方”的矢量(如摄像机所见) u、v和w是正交的,我假设我们已经对它们进行了归一化(所以现在我们有了一个正交基) 让C=(Cx,Cy,Cz)作为相机“眼睛”的位

试图更好地理解视图转换,使用右手法则。如果有人可以帮助澄清给定的幻灯片。例如,什么是C,为什么它是负数,为什么对矩阵应用逆,最后,这些矩阵串联的最简单形式是什么。谢谢你的时间和帮助!

  • 假设我们有一个3D点
    P=(Px,Py,Pz)
    ,在真实坐标系中
  • u
    为指向“左”的矢量(如摄像机所见)
  • v
    为指向“上”的矢量(如摄像机所见)
  • w
    为指向“前方”的矢量(如摄像机所见)
  • u
    v
    w
    是正交的,我假设我们已经对它们进行了归一化(所以现在我们有了一个正交基)
  • C=(Cx,Cy,Cz)
    作为相机“眼睛”的位置
如果我们手动将
p
转换为摄影机坐标,则会这样做:

  • 找到相对于相机的位置
    Pc=P-C
  • 通过计算
    u
    (/
    v
    /
    w
    )和
    Pc
    的点积,我们可以找到点的
    u
    (/
    v
    /
    w
    )分量
  • 因此,摄像机看到的
    P
    的坐标是
    (,)
    ,其中
    表示
    x
    y
    的点积
这与给定的矩阵完全匹配:

| ux  uy  uz  0 |   | 1  0  0 -Cx |   | Px |
| vx  vy  vz  0 | X | 0  1  0 -Cy | X | Py |
| wx  wy  wz  0 |   | 0  0  1 -Cz |   | Pz |
|  0   0   0  1 |   | 0  0  0   1 |   |  1 |

  | ux  uy  uz  0 |   | Px - Cx |
= | vx  vy  vz  0 | X | Py - Cy |
  | wx  wy  wz  0 |   | Pz - Cz |
  |  0   0   0  1 |   |  1      |

  | <Pc,u> |
= | <Pc,v> |
  | <Pc,w> |
  |      1 |
| ux ux uz 0 | 1 0 0 0-Cx | Px|
|vx vy vz 0 | X | 0 1 0-Cy | X | Py|
|wx wy wz 0 | | 0 0 1-Cz | | Pz|
|  0   0   0  1 |   | 0  0  0   1 |   |  1 |
|ux ux uz 0 | | Px-Cx|
=| vx vy vz 0 | X | Py-Cy|
|wx wy wz 0 | | Pz-Cz|
|  0   0   0  1 |   |  1      |
|  |
= |  |
|  |
|      1 |

因此,基本上,这里的大矩阵实际上是一个将点从绝对坐标转换为摄像机坐标的矩阵(Cx,Cy,Cz),据我所知是摄像机的坐标(即光线投射的点)。尝试了解更多细节为什么它们是负数?这是因为在摄影机视图中Z是反方向的吗??如果是这样的话,这对Cx和Cy也是负的会有什么影响?但这只是另一个简单的问题,矩阵不应该像最后一部分那样添加吗??ux*(Px-Cx)+uy*(Py-Cy)+uz*(Pz-Cz)+1
确实是编写
ux*(Px-Cx)+uy*(Py-Cy)+uz*(Pz-Cz)
的一个简短形式(注意,我在最后一个坐标中没有
+1
,因为矩阵在该行的最后一列中有一个
0
)对不起,为什么矩阵中的第一行是ux,uy,uz,0,与示例ux、vx、wx、0不同??注意矩阵上的转置,因为它写在您的幻灯片中。我知道A^-1=A^T,但为什么首先要取相反的值?这是应用于每个旋转还是仅用于视图变换。