原文链接:http://www.nicemxp.com/articles/21
经过相机坐标变换后,相机位置已经变换到了原点处,朝向指向正Z轴,如图:
如图是左手坐标系下3D系统俯视图,相机视野为90度,视景体内物体的顶点需要投射到视平面上完成透视变换,如果我们知道了视距d可以很容易算出顶点在视平面投影的坐标,如图:
图示是3D系统的侧视图,YOZ平面下根据相似三角形定理可以很容易得到:
d / z0 = yp / y0 => yp = y0 / z0 * d
同理 d / z0 = xp / x0 => xp = x0 / z0 * d
终上可得视点位于(0, 0, 0),视平面为z=d时物体顶点(x, y, z)的投影变换为:
xper = d * x / z,yper = d * x / z
可以通过矩阵运算来完成变换:
(x, y, z, 1) *