OpenGL纹理倾斜

7
当我在OpenGL中加载一个只有一个(GL_ALPHA)或三个像素组件(GL_RGB)的纹理时,这个纹理会出现倾斜。是什么导致了这种情况?
另外需要说明的是,宽高比似乎会影响到这个问题。例如,1366x768(683/384)的图像会出现倾斜,而1920x1080(16/9)的图像则被正确地映射。 倾斜的图片

1
请添加一张截图。 - Kromster
1个回答

12

这可能是一个填充/对齐问题。

默认情况下,GL 希望像素行按 4 字节的倍数进行填充。1366 宽度的纹理,如果每个像素是 1 字节或 3 字节宽,那么自然不会有 4 字节对齐。

可能的解决方法如下:

  • 告诉 GL 您的纹理是如何打包的,例如使用 glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
  • 更改纹理的尺寸,使填充匹配而不需要改变任何东西
  • 更改纹理的加载方式,使填充与 GL 的期望一致

我没有问这个问题,但它确实帮了我很多!谢谢! - Sohyun Ahn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接