2017-02-15 91 views
1

我一直很难理解为什么正交投影中Z坐标的变换是它在右手坐标系中的方式。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坐标的方式相比),而“翻译”部分保持不变。

回答

2

nearfar值实际上是到相应深度剪切平面的距离,因此是正值。要考虑的坐标系为(e_x, e_y, e_z),其中e_x指向右侧,e_y指向上,e_z指向摄像头/眼睛。在此坐标系中,深度剪切平面的z坐标最终为-near-far,它们使您按照您的注意事项进行数学检查。

+0

好的,我没有意识到的是我实际上必须绘制底片。我在纸上重复了数学,并给出了正确的结果。谢谢。 –