OpenGL ES有不同的UV坐标
OpenGL ES has different UV coordinates?
我使用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();
我也想知道,为什么有glOrthof不支持Qt和glOrtho不支持Android?在这两个框架中是否有一个共同的功能?
在OpenGL中,默认的纹理坐标(0,0)对应于纹理的左下角。自从OpenGL存在以来,它就一直是这样(可能永远是这样)。
然而,你可以通过改变纹理矩阵来改变这个惯例,或者仅仅通过将纹理从下到上翻转来存储。
顺便说一下,glOrtho
与Qt或Android无关,它是一个OpenGL函数。所以你所经历的可能不是Qt和Android之间的差异,而是桌面OpenGL和OpenGL ES之间的差异。但是无论如何,在两个版本中纹理坐标都应该从左下角开始
你怎么知道纹理是从左下到右上?我从来没有听说过这种类型的纹理映射方向
相关文章:
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 比较两个节点坐标的最佳方法是什么?
- 在 OpenGL 中将笛卡尔世界坐标转换为球面局部坐标
- SDL2 调整窗口大小后如何缩放鼠标坐标?
- 如何在C++中获取坐标?
- 如何将 x.y 坐标的值存储在不同的数组中
- 如何将鼠标坐标转换为"mm"
- 重心坐标并不总是有效(3d)
- 尝试渲染像素坐标时,简单线条渲染失败
- 使用 GTK3 C++获取指针坐标
- 从 CGAL 3D 网格生成中获取顶点坐标的 -6.27744e+66:mesh_implicit_sphere示例
- 我想制作设置鼠标回调函数,以便在仍然按下鼠标左键时连续传递坐标
- 将鼠标悬停在图片框上时,如何显示带有 x-y 坐标的十字准线光标?
- 跳转到通过输入坐标定义的控制台屏幕位置
- 如何在三角形曲面细分评估着色器中插值 UV 映射坐标?
- OpenGL/C++ - 生成 UV 坐标
- OpenGL ES有不同的UV坐标