使用LUMINANCE_ALPHA缩放问题

时间:2013-01-17 23:48:47

标签: ios opengl-es textures

我正在扩展我的OpenGL-UI系统,为此我重写了字体部分并遇到了使用mipmapping时出现的问题。因为图像说出了数千个单词:

Font issue

正如你所看到的那样,字体的透明度逐渐淡出(文本应该显示8次!),这只有在使用LUMINANCE_ALPHA - 纹理时才会发生。加载纹理的代码基本相同,但它们使用的格式不同,这是LUMINANCE_ALPHA使用的:

  

TexImageInternalFormat.LUMINANCE_ALPHA,TexImageFormat.LUMINANCE_ALPHA,TexImagePixelType.UNSIGNED_BYTE

启用线性滤波并将钳位设置为GL_CLAMP_TO_EDGE。对我来说,它似乎是一个mipmapping问题,但我尝试了很多不同的设置,它没有工作,正如我已经说过,RGBA纹理工作没有任何问题。该应用程序也可以在iOS上运行,因此使用LUMINANCE_ALPHA - 纹理与RGBA相比可以节省大量内存。

什么可能导致这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

事实证明ImageFormat设置错误:

LA8 = new ImageFormat("LA8", TexImageInternalFormat.LUMINANCE_ALPHA, TexImageFormat.LUMINANCE_ALPHA, TexImagePixelType.UNSIGNED_BYTE, 4);

最后一个数字表示此格式的每个像素的字节数,如果是LUMINANCE_ALPHA,则应为2。 PVR阅读器不会抱怨丢失的图像数据,也没有抛出任何异常。将4改为2可以解决问题。