今天看到风火连城胸写的一篇博客,谈到改进的线性工作流,前段时间我刚因为这个而困惑在CGS发帖http://forums.cgsociety.org/showthread.php?f=87&t=982101 一些自己日思夜想的东西总是会“恰巧”遇到。
先谈谈背景,在第一次接触Linear Workflow(LWF)之后感觉自己瞬间比别人多知道个东西,然后开始以为不用LWF的WF都是错误的WF,然后在每个可能的情况下我都是用了LWF,得到的效果的确明亮起来,也漂亮了。这更坚定了我“不是LWF的WF都不是好WF”的观点。
可是后来在写RSL的过程中逐渐开始怀疑,shader所输出的值真的需要校正吗?这个怀疑的起因在于两点:
1.既然贴图需要一个0.455的gamma节点来变暗后才打到“正确”的空间,那么所有shader的颜色值是不是需要校正呢?
毫无疑问,是需要的,一张纯色灰度0.5的贴图和一个纯色0.5效果理论上是一样的,贴图需要"变暗"才能正确的话纯色也必须需要"变暗".
这么一想之后,你所面对的不只是贴图前挂个gammaCorrect节点了,而是必须把所有的shader的所有有关color的输入(ambColor,diffColor,specColor,sssColor...)进行校