对于内存效率高的实时嵌入式图形,我通常在需要无损灰度图像时使用GL_LUMINANCE编码的DDS图像(或在需要alpha图像时使用GL_LUMINANCE_ALPHA )。然而,我刚刚发现这些文件格式是deprecated in OpenGL 3,并且从3.1中删除了。
对于每像素8位或更低(或当涉及alpha时为16bpp )的无损灰度数据,是否有替代的图像格式?
发布于 2013-11-20 00:34:03
如果您在该维基页面上向上滚动一点,您将看到1通道和2通道图像的GL_RED/GL_R*和GL_RG*。
GL_RED:每个元素都是一个单独的红色组件。GL将其转换为浮点数并将其组合为RGBA元素,方法是将绿色和蓝色附加为0,将alpha附加为1...
GL_RG:每个元素都是一个红色/绿色的双精度值。GL将其转换为浮点数,并通过附加0表示蓝色,1表示alpha...将其组装为RGBA元素。
As GuyRT pointed out如果您有EXT_texture_swizzle/ARB_texture_swizzle和/或OpenGL版本>= 3.3,则可以使用swizzle mask展开/重新排列纹理颜色组件。
https://stackoverflow.com/questions/20076814
复制相似问题