我正在使用一个有效的DDS加载器来加载我的纹理,但是RGBA4格式(GL_UNSIGNED_SHORT_4_4_4_4)似乎存在问题,导致渲染结果出现偏差。我在背景上使用了相同的着色器,它可以正常工作,但使用的是RGB565格式的纹理。
以下是截图: 从截图可以看出,纹理有偏差,实际应该是一个返回按钮。纹理加载也是正确的,已经调试过,OpenGL加载的代码如下:
以下是截图: 从截图可以看出,纹理有偏差,实际应该是一个返回按钮。纹理加载也是正确的,已经调试过,OpenGL加载的代码如下:
GL.TexImage2D(All.Texture2D, 0, (int)All.Rgba, Width, Height, 0, (int)All.Rgba, All.UnsignedShort4444, image.GetData());
图像数据:
- 大小:16402字节
- 宽度:139像素
- 高度:59像素
编辑
纹理是npot,但OpenGL ES 2.0应该支持。
编辑 II
看起来我有两个问题,第一个是通道不正确,第二个是纹理被扭曲了。扭曲可能是NPOT纹理和苹果的问题,因为我测试了另一张大小为128x128的图片,它没有被扭曲,但是有一些通道被交换了。