为什么OpenGL会把事情颠倒过来?

时间:2013-02-24 14:00:05

标签: opengl drawing rendering flip

我还没有看到有人回答这个问题。我所看到的只是人们告诉他们一些事情是颠倒的,然后有人告诉他们翻转他们的代码。但我想知道为什么OpenGL会翻转Y型坐标?这毫无意义。

3 个答案:

答案 0 :(得分:4)

OpenGL假设Y坐标从下到上。如果您的代码假定相反,则会将内容颠倒过来。

有关 opengl坐标系

的更多信息,请访问Google

答案 1 :(得分:1)

这完全取决于您如何设置场景。有很多事情可以导致这种影响。

例如,相机位置/方向会影响您查看最终场景的方式。

gluLookAt(camera[0], camera[1], camera[2],  /* look from camera XYZ */ 
                  0,         0,         0,  /* look at the origin */ 
                  0,         1,         0); /* positive Y up vector */

使用纹理时,指定错误的纹理坐标可以翻转图形。

但最强烈的<常见问题可能是人们忘记了OpenGL将坐标(0,0)定义为显示的左下角(Y向上) )。

答案 2 :(得分:1)

OpenGL适用于笛卡尔坐标。在笛卡尔坐标系中,0,0位于中心,正向线向上和向右延伸。可以将任何坐标映射或转换为程序员所希望的任何坐标,但这是默认值。当你给出纹理坐标时,OpenGL期望那些是Catresian坐标,而不是自上而下的坐标。这些坐标可以通过程序进行转换,但最快的解决方法就是翻转纹理。

enter image description here