坐标系[-1,1]

时间:2016-10-27 21:27:26

标签: opengl

我对OpenGL坐标系的工作原理感到困惑。我知道你从对象坐标开始 - 在自己的系统中定义的一切。然后通过应用矩阵,坐标变为世界坐标。通过应用另一个矩阵,您可以获得视图坐标。然后,如果您正在使用3D,则可以应用透视矩阵。最后,你留下了一组坐标,这些坐标可能不是来自[-1,1]。 OpenGL如何知道如何从[-1,1]标准化它们?它是如何知道将它们剪掉的?在着色器中,glPosition只是给出了你的坐标,它不知道已经经过了几次变换。我知道标准化坐标矩阵的视图涉及平移和缩放,但我们从未在OpenGL中明确地为其制作矩阵。 OpenGL是否使用自己的隐藏矩阵从传递给glPostion的坐标转换为规范化坐标?

1 个答案:

答案 0 :(得分:0)

https://www.opengl.org/wiki/Vertex_Transformation

中解释了不推荐的固定函数顶点变换

基于着色器的渲染可能会为每个转换步骤使用相同或非常相似的数学运算。 glPosition和设备坐标之间缺少的步骤是透视分割(如LJ快速评论),其中xyzw坐标转换为xyz坐标。 xyzw坐标是三维坐标的齐次坐标,使用4个分量来表示位置。

https://en.wikipedia.org/wiki/Homogeneous_coordinates