从OpenGL ES 2.0 规范第 4.4.5 节:
“表 4.5 中未列出的格式,包括压缩的内部格式。无论它们包含哪些组件,都不能进行颜色、深度或模板渲染。”
然后有扩展此表的扩展,例如:
如果我正确理解规范,表 4.5 会影响纹理和渲染缓冲区格式。在这种情况下,例如,除非支持扩展 OES_rgb8_rgba8(或 RGBA 的 ARM_rgba8),否则每个组件具有 8 位的 RGB 和 RGBA 纹理是不可颜色渲染的。
在支持 OES_rgb8_rgba8 的测试设备上,以下纹理格式是有效的,即当作为颜色附件附加到 FBO 时,帧缓冲区完整:
- RGB 565
- RGB 888
- RGBA 4444
- RGBA 5551
- RGBA 8888
这些不是:
- 阿尔法 8
- 亮度 8
- 亮度Alpha 88
结果符合我的假设(至少在 1 台设备上),但我想知道我是否正确理解了规范,或者这是偶然发生的?