sRGBTransferOETF
sRGBTransferOETF
将在线性空间中计算出的物理颜色,编码为显示器能够正确呈现的 sRGB 颜色,通常作为渲染管线的最后一步。
核心优势
通过应用标准的“伽马校正”,确保最终图像在屏幕上具有正确的亮度和对比度,将物理上精确的渲染结果转换为视觉上正确的画面。
常见用途
将最终渲染结果编码输出到屏幕,这是其核心用途。
将渲染结果保存为标准图像文件(如 PNG, JPG)时进行色彩编码。
在着色器中预览线性颜色值在屏幕上的实际显示效果。
如何调整
这是一个固定的数学函数,没有可调参数。它的作用是决定性的,必须作为颜色处理的最后一步。如果在颜色混合前错误地使用它,会导致混合结果(如红+绿)变得暗淡浑浊,而不是物理上正确的亮黄色。
代码示例
1// 假设 linearColorInput 是光照计算后的线性颜色 (物理中灰色)
2const linearColorInput = uniform( vec3( 0.214, 0.214, 0.214 ) );
3
4// 将其从线性空间转换为 sRGB 空间以正确显示 (视觉中灰色)
5const sRGBColorOutput = sRGBTransferOETF( linearColorInput );