【发布时间】:2013-02-09 17:44:42
【问题描述】:
我还没有看到有人回答这个问题。我所看到的只是人们告诉他们某些事情是颠倒的,然后其他人告诉他们翻转他们的代码。但我想知道的是,为什么 OpenGL 会翻转 Y 坐标?没有意义。
【问题讨论】:
标签: opengl drawing rendering flip
我还没有看到有人回答这个问题。我所看到的只是人们告诉他们某些事情是颠倒的,然后其他人告诉他们翻转他们的代码。但我想知道的是,为什么 OpenGL 会翻转 Y 坐标?没有意义。
【问题讨论】:
标签: opengl drawing rendering flip
OpenGL 假设 Y 坐标从下到上。如果您的代码假定相反的内容会颠倒显示。
有关 opengl 坐标系
的更多信息 Google【讨论】:
这完全取决于您如何设置场景。有很多因素会导致这种影响。
例如,相机位置/方向会影响您看到最终场景的方式。
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 向上)。
【讨论】:
OpenGL 适用于笛卡尔坐标。在笛卡尔坐标系中,0,0 位于中心,正坐标向上和向右延伸。任何坐标都可以映射或转换为程序员希望的任何坐标,但这是默认设置。当您提供纹理坐标时,OpenGL 期望那些是 Catresian 坐标,而不是自上而下的坐标。这些坐标可以通过程序进行转换,但最快的解决方法是翻转纹理。
【讨论】: