mx_srgb_texture_to_lin_rec709
mx_srgb_texture_to_lin_rec709
将从 sRGB 纹理中采样的颜色,精确转换为用于物理光照计算的线性 Rec.709 色彩空间。
核心优势
封装了从 sRGB 到线性的标准转换公式,确保物理渲染的准确性,并简化了色彩管理工作流,使开发者无需手动实现复杂的数学转换。
常见用途
解码 PBR 材质的基础颜色(Albedo)贴图,为光照计算做准备。
在进行颜色混合或调整等图像处理前,将 sRGB 纹理预处理为线性颜色。
转换自发光(Emissive)贴图,以确保其强度能与其他光源正确叠加。
如何调整
这是一个固定的数学转换函数,没有可调参数。其效果体现在输入与输出的差异上:例如,一个中性灰的 sRGB 输入 `vec3(0.5)` 会被转换为更暗的线性值 `vec3(0.214)`。关键在于,任何颜色混合或数学运算都应在经过此节点转换 *之后* 的线性空间中进行,以保证结果的物理正确性。
代码示例
1// 将 sRGB 纹理采样结果转换为线性颜色
2const linearColor = mx_srgb_texture_to_lin_rec709( texture( mySrgbTexture ) );
3
4// 将转换后的颜色用于材质
5material.colorNode = linearColor;