正交投影中的Z轴问题

时间:2017-02-15 10:57:19

标签: opengl math matrix graphics equation

我一直无法理解为什么正交投影中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坐标的方式相比),而是“翻译”部分保持不变。

1 个答案:

答案 0 :(得分:2)

nearfar值实际上是到相应深度剪裁平面的距离,因此是正值。要考虑的坐标系为(e_x, e_y, e_z)e_x指向右侧,e_y指向上方,e_z指向相机/眼睛。在此坐标系中,深度剪裁平面的z坐标最终为-near-far,这使得数学结果在您注意到时结束。