我正在使用有效的DDS加载器加载我的纹理,但RGBA4格式(GL_UNSIGNED_SHORT_4_4_4_4)似乎存在一个问题,它被绘制为倾斜。 我在背景上使用相同的着色器(可以使用RGB565)和其他纹理。
以下是截图:
正如您所看到的那样,纹理是倾斜的,它应该是一个后退按钮。 纹理加载也是正确的,它加载它应该加载的所有字节(调试它),OpenGL加载看起来像这样:
GL.TexImage2D(All.Texture2D, 0, (int)All.Rgba, Width, Height, 0, (int)All.Rgba, All.UnsignedShort4444, image.GetData());
图片资料:
纹理是npot,但OpenGL ES 2.0应该支持。
这里似乎有2个问题,第一个是通道不正确,第二个是纹理偏斜。 NPOT纹理和苹果的倾斜可能是一个问题,因为我测试了另一个大小为128x128的图像并且它没有偏斜但是它有一些频道被交换。
答案 0 :(得分:3)
您是否通过调用 glPixelStore 来设置像素对齐?
默认情况下,每行应与4字节边界对齐。
对齐参数(GL_PACK_ALIGNMENT)不依赖于纹理内部格式,但它取决于源数据。 在调用 TexImage 之前调用 glPixelStore 。将参数设置为1,然后研究像素传输参数!