3D图形处理 - 如何计算模型视图矩阵

时间:2011-04-27 01:08:34

标签: math opengl graphics 3d hardware

我无法理解从对象空间转换到视图空间的数学。我在硬件中这样做,我有下面的Atranspose矩阵:

ATranspose =

         [rightx      upx     lookx    0]
         [righty      upy     looky    0]
         [rightz      upz     lookz    0]
         [-eyeright -eyeup -eyelook    1]

然后找到我们要做的观点:

  [x,y,z,1] = [x',y',z',1]*ATranspose

  xnew = xold*rightx + xold*righty + xold*rightz + xold*(-eyeright)

但我不确定这是否正确。

也可能是

   [x,y,z,1]=atranspose*[x',y',z',1]T

有人可以向我解释一下吗?我在网上找不到任何关于它的东西,这不是直接与opengl代码相关的我只想了解从对象坐标到眼睛坐标转换点背后的数学。

2 个答案:

答案 0 :(得分:13)

答案 1 :(得分:1)

如果您在第二种变体中转置ATranspose,即

[x,y,z,w]^T = ATranspose^T * [x',y',z',w']^T
BTW,^T意味着转置所以原作者可能意味着

[x,y,z,w] = [x',y',z',w'] * A^T

并重写

[x,y,z,w]^T = A^T * [x',y',z',w']^T

然后所有这些配方都同样正确。