透视投影矩阵是图形学一道重要的坎,他是将世界空间转到屏幕空间,再将屏幕放进裁剪空间ndc映射
我们从侧视图看
我们的已知条件
1.aspect:屏幕宽高比
2.n:近截面z轴坐标
3.f :远截面z轴坐标
4.fov角度
我们可以求出t的长度
t=n*tan(fov/2)
b = -t
k = r + l / 2t (k是宽高比系数)
2t * k = 2l
t * k = l
r = -l
图中投影的点可以看成相似三角形
X1 / X = Y1 / Y = Z 1 /Z
因为 Z1 是-N
因为用的是opengl的右手坐标系(实际上OpenGL并不是分左手右手,右手使我们成俗的习惯)
Z1 = -N
X1 / X = -N / Z
X1 = N