我們正試圖優化程序中的內存使用情況,我們注意到我們的一些紋理可以存儲爲灰度值和alpha值,因爲當存儲爲RGBA時,RGB值完全相同。openGLES 2 - 如何加載8位灰度和8位alpha的紋理,而不擴展到32位RGBA?
我們希望通過只需要存儲2個通道(灰度和alpha,都是8位)來節省磁盤空間和內存。因此,通過32位RGBA提供50%的磁盤和內存節省。
但是我們遇到的障礙是我們無法弄清楚如何將這些信息提供給openGL。我們可以將圖像存儲在磁盤上,既可以作爲一個具有兩個8位通道的圖像,也可以作爲每個具有一個8位通道的兩個圖像。我無法找到一種方法讓openGL將其視爲灰度圖像,以便它只在內存中擁有這兩個通道,而不會將它們視爲像紅色和綠色這樣的特定顏色 - 因爲我發現存在GL_RG8,它具有正確的編號的渠道在正確的深度,但錯誤的顏色。
這甚至可能在openGLES 2中?我們可以給2個通道openGL並告訴它們它們不是紅色和綠色,而是灰色和阿爾法?
我看到這個問題:Can I use a grayscale image with the OpenGL glTexImage2D function?但這是相當古老的,GL_LUMINANCE現在被刪除。