读 http://www.songho.ca/opengl/gl_projectionmatrix.html
0.投影矩阵的功能:
将眼睛空间中的坐标点 [图A的视椎体] 映射到 一个(-1, 1)的空间中[图B的立方体]
图A 图B
1.我们要解的是什么问题:
我们要求一个矩阵,使得以下等式成立
[结果坐标] = [待求矩阵] * [眼睛坐标系的坐标]
2.大致思路是什么:
我们使等式左侧的[Xc, Yc, Zc, Wc]T 坐标 和 等式右侧的[Xe, Ye, Ze, We]T 变为已知, 逆推中间的未知矩阵。
3.推导过程:
不管矩阵的其他几何含义,纯粹从等式成立的角度
3.1求矩阵第四行
a.求眼睛空间中某一点坐标在近平面的投影点坐标
从顶部y方向逆方向看向视椎体,求Xp
----------->>>>>>
等式A
同理,从侧边x方向逆方向看向视椎体, 求Yp
----------->>>>>>
等式B
此时第三个分量Zp = -n