我一直无法理解为什么正交投影中Z坐标的变换与右手坐标系中的相同。
使用每个人使用的矩阵的Z的“函数”是:
f(z) = -2*z/(far-near) - (far+near)/(far-near)
据我所知,正交投影的工作方式是它应该将左/右,上/下,近/远坐标映射到1 / -1。
但如果我们替换近远坐标,我们得到:
f(far) = -2*far/(far-near) - (far+near)/(far-near) = (-3*far - near)/(far - near)
f(near) = -2*near/(far-near) - (far+near)/(far-near) = (-far - 3*near)/(far-near)
在大多数情况下,不会回报-1和+1。
基本上我的假设是整个函数应该被否定(与计算X和Y坐标的方式相比),而是“翻译”部分保持不变。
答案 0 :(得分:2)
near
和far
值实际上是到相应深度剪裁平面的距离,因此是正值。要考虑的坐标系为(e_x, e_y, e_z)
,e_x
指向右侧,e_y
指向上方,e_z
指向相机/眼睛。在此坐标系中,深度剪裁平面的z坐标最终为-near
和-far
,这使得数学结果在您注意到时结束。