OPENGL剪辑坐标

时间:2013-09-18 14:38:52

标签: opengl clip

我对opengl剪辑坐标有疑问。例如,一个三角形,三个vetices,现在已经转换为相机坐标,与透视投影矩阵相乘到剪辑坐标,开始剪辑,     -w=<x<=w, -w=<y<=w, -w=<z<=w, x,y,z,w对每个顶点的剪辑坐标是什么意思?那么在这三个顶点中w可能不一样吗?

1 个答案:

答案 0 :(得分:18)

是的,w会因每个顶点而异。大多数人将剪辑空间想象为立方体[-1,1] ^ 3。但是,这不是剪辑空间,而是规范化设备空间(NDC)。您通过执行透视分割从剪辑空间到NDC,因此将每个顶点除以它的w分量。因此,在NDC中,该剪辑条件将变换为-1&lt; = x / w&lt; = 1.然而,剪辑不能在NDC中完成(具有额外信息)。

这里的问题是相机后面的点会出现在NDC空间的相机前面。想一想:x / w与-x / -w相同。使用典型的GL投影矩阵,w_clip == z_eye的顶点。此外,位于相机平面中的点(平行于投影平面的平面,但穿过相机本身)将具有w = 0并且在该除法之后您不能进行任何限幅。解决方案是在除法之前始终进行剪裁,因此剪辑空间称为“剪辑空间”......