对于内存高效的实时嵌入式图形,我传统上使用的是使用GL_LUMINANCE
编码的DDS图像,当我需要无损灰度图像时(或GL_LUMINANCE_ALPHA
需要alpha时)。但是,我刚刚发现这些文件格式为deprecated in OpenGL 3并从3.1中删除。
是否有无损灰度级数据的替换图像格式,每像素8位或更少(或涉及alpha时为16bpp)?
答案 0 :(得分:8)
如果您在该维基页面上向上滚动一下,您会看到GL_RED/GL_R*
和GL_RG*
的1和2通道图像。
GL_RED
:每个元素都是一个红色组件。 GL将其转换为浮点数并将其组合成RGBA元素,方法是将0与绿色和蓝色相关联,并将1与alpha相关联...
GL_RG
:每个元素都是红色/绿色双。 GL将其转换为浮点并通过将0附加为蓝色而将其组合为RGBA元素,将1附加为alpha ...
As GuyRT pointed out如果您有EXT_texture_swizzle/ARB_texture_swizzle
和/或OpenGL版本> = 3.3,则可以使用swizzle mask展开/重新排列纹理颜色组件。