13.2 正交投影
到目前为止,我们一直使用的是透视投影(perspective projection)。它的主要特点
是:与摄像机距离越远的物体看上去越小。这与我们在生活中看到的情况完全相同。正交投
影(orthographic projection)是另一种投影,它主要用于 3D 自然科学或工程模拟
软件,这些软件要求平行线在投影之后依然保持平行。在本章中,我们要用正交投影来模拟
由平行光产生的阴影。在正交投影中,视域体是一个与坐标轴对齐的立方体,它沿着观察空
间的 z 轴正方向放置,它的宽为 、高为 ℎ、近平面为 、远平面为 (参见图 13.2)。
相对于观察空间坐标系定义的这些数字构成了一个正交视域体。
图 13.2:正交视域体是一个与观察坐标系轴对齐的立方体。
当使用正交投影时,投影线是与观察空间的 z 轴平行的(图 13.3)。我们可以看到,顶点 (x, y, z) 的 2D投影坐标为 (x, y)。
图 13.3:点在投影平面上的正交投影。当使用正交投影时,投影线与观察空间的 z轴平行。
与透视投影类似,我们希望保留相应的深度信息并得到规范化设备坐标(NDC)。要将视域
体从观察空间变换到 NDC 空间,我们必须对观察空间视域体 [− , ] × [− , ] × [ , ] 进
行重新缩放和平移,把它映射为 NDC 空间视域体 [−1, 1] × [−1, 1] × [0, 1]。我们可以通过
逐个求解这些坐标来确定该映射过程。对于前两个坐标,很容易看出只要乘以一个标量系数
就能让等式成立: