gpt4 book ai didi

android - OpenGL ES 有不同的 UV 坐标?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:46 24 4
gpt4 key购买 nike

我使用带有纹理映射的 OpenGL ES 1.1。我一直认为纹理的 UV 坐标系从左上角开始到右下角。这在android上很好,我已经测试过了。但是,如果我在桌面上使用 Qt 对其进行测试,我的 UV 坐标系会从左下角开始到右上角。这可以吗?我正在使用相同的代码来设置 OpenGL

glViewport(0, 0, m_screenWidth, m_screenHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

#ifdef DESKTOP_QT
glOrtho(0, 1, 0, 1, -1, 1);
#else
glOrthof(0, 1, 0, 1, -1, 1);
#endif

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

另外我想知道,为什么Qt不支持glOrthof,Android不支持glOrtho?是否有一个功能在两个框架中都是通用的?

最佳答案

默认情况下,在 OpenGL 中,纹理坐标 (0,0) 对应于纹理的左下角。自 OpenGL 存在以来,它一直是(并且可能永远是)那样。

不过,您可以通过更改纹理矩阵或仅存储从下到上翻转的纹理来更改此约定。

顺便说一下,glOrtho 与 Qt 或 Android 无关,它是一个 OpenGL 函数。所以您可能遇到的不是 Qt 和 Android 之间的区别,而是桌面 OpenGL 和 OpenGL ES 之间的区别。但是尽管如此,纹理坐标在两个版本中都应从左下角开始。

关于android - OpenGL ES 有不同的 UV 坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com