7

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

4

3 回答 3

5

OpenGL 假设 Y 坐标从底部到顶部。如果您的代码假设相反的内容会颠倒显示。

有关opengl 坐标系的更多信息谷歌

于 2013-02-24T14:08:37.427 回答
1

It all depends on how you setup your scene. There are many things that can cause this effect.

For instance, the camera position/orientation affects how you see the final scene.

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 */

When working with textures, specifying wrong texture coordinates can flip the drawing.

But the most common issue might be people forgetting that OpenGL defines coordinate (0, 0) to be the lower left corner of the display (with the Y going upward).

于 2013-02-24T14:18:45.713 回答
1

OpenGL 适用于笛卡尔坐标。在笛卡尔坐标系中,0,0 位于中心,正坐标向上和向右延伸。任何坐标都可以映射或转换为程序员希望的任何坐标,但这是默认设置。当您提供纹理坐标时,OpenGL 期望那些是 Catresian 坐标,而不是自上而下的坐标。这些坐标可以由程序转换,但最快的解决方法是翻转纹理。

在此处输入图像描述

于 2013-02-25T14:02:57.703 回答