OpenGL纹理坐标混淆

OpenGL纹理坐标混淆,opengl,graphics,Opengl,Graphics,从我读到的内容来看,纹理T坐标轴是翻转的top是1.0,bot是0.0,尽管我不太明白为什么我当前的映射代码可以工作,因为我映射坐标如下: float coords[] = { 0,0, wratio,0, wratio,hratio, 0,hratio }; 相反: float coords[] = { 0,0, wratio,0, wratio,1.0 - hratio, 0,1.0 - hratio }; 最让人困惑的

从我读到的内容来看,纹理T坐标轴是翻转的top是1.0,bot是0.0,尽管我不太明白为什么我当前的映射代码可以工作,因为我映射坐标如下:

float coords[] = 
{
    0,0,
    wratio,0,
    wratio,hratio,
    0,hratio
};
相反:

float coords[] = 
{
    0,0,
    wratio,0,
    wratio,1.0 - hratio,
    0,1.0 - hratio
};
最让人困惑的是,这两个版本都有效


……这是怎么回事?

它没有翻转;这就是OpenGL的工作原理。OpenGL中的所有内容都将+X轴向右移动,+Y轴向上移动。窗口空间、剪辑空间和“是”纹理坐标。这会将纹理的原点置于左下角。至于发生了什么事,你还没有发布足够的信息来了解这一点。你是如何使用这些纹理坐标的?显示使用它们的代码。啊,现在我明白你的意思了,所以看起来我调用glOrtho 0的方式,宽度,高度,0,-1,1;使我的代码工作D: