OPENGL ES最多支持32位颜色值。

支持的像素格式有以下几种:

客户端格式GL格式GL数据类型字节数
RGBA8888GL_RGBAGL_UNSIGNED_BYTE4
RGB888GL_RGBGL_UNSIGNED_BYTE3
RGB5A1GL_RGBAGL_UNSIGNED_SHORT_5_5_5_12
RGB565GL_RGBGL_UNSIGNED_SHORT_5_6_52
RGBA4444GL_RGBAGL_UNSIGNED_SHORT_4_4_4_42
AI88GL_LUMINANCE_ALPHAGL_UNSIGNED_BYTE2
I8GL_LUMINANCEGL_UNSIGNED_BYTE1
A8GL_ALPHAGL_UNSIGNED_BYTE1

RGB888和RGBA8888相差了ALPHA通道的8位,在大多数情况下,ALPHA通道的值都是1,此时就应该使用RGB888格式来存储,既节约了内存空间,也提高了渲染性能。

同样占2字节的格式中也有区别:

RGB565格式放弃了ALPHA通道,但提高了RGB颜色的精度,(由于人类的视觉对绿色更敏感,所以G通道是6位)。

RGB5A1格式只有1位表示ALPHA值,适用于字体或者蒙版。

RGBA4444格式就是RGBA8888格式的简化版,丢失了一些精度,但可以节省一半的内存。

04-26 15:21
查看更多