GL_LUMINANCE,GL_LUMINANCE_ALPHA的替换

时间:2013-11-19 16:27:44

标签: image opengl opengl-3

对于内存高效的实时嵌入式图形,我传统上使用的是使用GL_LUMINANCE编码的DDS图像,当我需要无损灰度图像时(或GL_LUMINANCE_ALPHA需要alpha时)。但是,我刚刚发现这些文件格式为deprecated in OpenGL 3并从3.1中删除。

是否有无损灰度级数据的替换图像格式,每像素8位或更少(或涉及alpha时为16bpp)?

1 个答案:

答案 0 :(得分:8)

如果您在该维基页面上向上滚动一下,您会看到GL_RED/GL_R*GL_RG*的1和2通道图像。

glTexImage2D()

  

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展开/重新排列纹理颜色组件。