2013-01-17 119 views
2

我目前正在擴展我的OpenGL-UI系統,爲此我重寫了字體部分,並遇到了使用mipmapping時出現的問題。因爲事實上,圖像說超過千字的:LUMINANCE_ALPHA縮放問題

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相比,紋理節省了大量ram。

什麼可能導致這種情況,我該如何解決它?

+1

你如何生成你的mipmap? –

+0

您是否啓用了照明? – Luca

+0

@NicolBolas當然。並檢查了mipmap的顏色。 –

回答

0

由於原來的ImageFormat設置錯了:

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

最後一個數字表示每像素字節這種格式的數量,應該是2的情況下,LUMINANCE_ALPHA。 PVR閱讀器不會抱怨丟失的圖像數據,也不會拋出異常。將4更改爲2即可解決問題。