2

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

字体问题

如您所见,字体的透明度正在消失(文本应显示 8 次!),这仅在使用LUMINANCE_ALPHA-textures 时发生。加载纹理的代码基本相同,但它们使用的格式不同,这就是LUMINANCE_ALPHA用途:

TexImageInternalFormat.LUMINANCE_ALPHA,TexImageFormat.LUMINANCE_ALPHA,TexImagePixelType.UNSIGNED_BYTE

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

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

4

1 回答 1

0

事实证明,ImageFormat设置是错误的:

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

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

于 2013-01-18T19:12:58.263 回答