sRGB纹理颜色转换 sRGB Texture Color Conversion
如果当前绑定的纹理的内部格式是Table 8.24
中的sRGB格式之一,则红色、绿色和蓝色分量将作为过滤的一部分从sRGB颜色空间转换为线性颜色空间,具体描述见8.14和8.15节。任何alpha分量保持不变。理想情况下,实现应在过滤之前对每个样本执行此颜色转换,但是允许在过滤后执行此转换(尽管这种后过滤的方法不如在过滤之前从sRGB转换)。
从sRGB编码分量cs
到线性分量cl
的转换如下所示:
cl = (cs ≤ 0.04045) ? ( cs / 12.92 ) 😦((cs + 0.055) / 1.055 ) ^ 2.4);
这里假设cs
是在范围[0, 1]内的sRGB分量。
Internal Format |
---|
SRGB |
SRGB8 |
SRGB_ALPHA |
SRGB8_ALPHA8 |
COMPRESSED_SRGB |
COMPRESSED_SRGB8_ETC2 |
COMPRESSED_SRGB_ALPHA |
COMPRESSED_SRGB8_ALPHA8_ETC2_EAC |
COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 |
COMPRESSED_SRGB_ALPHA_BPTC_UNORM |
Table 8.24: sRGB texture internal formats