原创 3D透视投影 - 1.左手系一般情况下的矩阵推导
原创 3D正交投影 - 1.左手系一般情况下的矩阵推导
1.务必先移步上方链接查看左手系一般情况下的推导
2.右手系OpenGL差别有二
3.差别一: + z +z +z轴向取反
4.差别二:OpenGL使用列向量(即矩阵右乘列向量进行变换
根据差别一:我们只需对输入的z( i n c o m i n g incoming incoming z , P c a m z z, P_{camz} z,Pcamz)进行取负即可
如何取负,我们可以将负因子放入矩阵,即将矩阵第三行取负
这样最终可以得到正确的CVV
根据差别二:我们只需对左手系矩阵进行转置即可
构造透视投影矩阵:
构造正交投影矩阵:
⚠️ 第三行取负转置后变成第三列取负
注意OpenGL与DirectX在透视投影上面体现出来有两点不同:
C V V z CVV_z CVVz范围 + z +z +z方向我是如何进行推导的?
已经得到了 “左手系一般情况”的处理“右手系OpenGL”跟“左手系一般情况”的差别已知将输入的数据进行调整,使得适用“左手系一般情况”将调整因子写入矩阵,重新生成矩阵考虑到OpenGL使用列向量,转置即可