unpremult
unpremult
将预乘 Alpha (Premultiplied Alpha) 格式的颜色转换回标准的非预乘 (Straight Alpha) 格式,以确保后续颜色处理和计算的准确性。
核心优势
通过将颜色恢复到其原始、非预乘的状态,确保后续的颜色校正、光照计算或滤镜等操作是在纯净的颜色信息上进行的,从而避免颜色失真,保证渲染结果的物理正确性。
常见用途
处理从外部导入的预乘 Alpha 纹理,以避免混合时出现不自然的暗边
在多通道合成(如辉光)中,对颜色进行校正前恢复其原始状态
渲染 glTF 等采用预乘 Alpha 标准的模型的透明材质
如何调整
该节点没有可调参数。其输出效果完全由输入颜色的 Alpha (透明度) 值决定:Alpha 值越低,输出的 RGB 颜色就越被提亮,以恢复其原始色值。
代码示例
1// 假设 premultipliedColorNode 是一个预乘 Alpha 的 vec4 颜色
2// (其 RGB 值已被其 Alpha 值相乘)
3const straightAlphaColor = TSL.unpremult(premultipliedColorNode);