09_颜色锐化处理
颜色锐化处理
创建GammaColor组
参数设置
输入输出参数

计算遮蔽信息
NDotL,顶点法线的兰伯特非常光滑细节较少
pixelNDotL,含贴图法线发兰伯特拥有很多细节
NDotL - pixelNDotL,两者相减可以得到物体的凹凸信息,那么用1减去这个值就可以得到一个遮罩的遮蔽信息occlusion

当前遮蔽信息还是不够强烈所以先乘上3在用1减去,这样增强效果,这里乘以几都可以,可以随意调整,以效果为主,最后进行钳制防止有小于零的值 saturate((1 - 3 * (NDotL - pixelNDotL)))
occlusion的杂色太多了,所以整体提亮2倍,去除一些杂色,只保留较小的信息,这里乘几同样也是经验值类的,自己随意调整以效果为准 (saturate((1 - 3 * (NDotL - pixelNDotL))) * 2
最后计算获得一个颜色衰减值,兰伯特的值是-1~1,这里使用半兰伯特0~1和遮罩系数进行计算是为了保留教暗地方的依旧有颜色衰减值,我们默认使用的是兰伯特光照,所以这里进行混合,使用0.5也就是均匀混合。这样就得到了一个颜色的衰减值,注意这里说的衰减值是作用于Gamma矫正也就是颜色变化,而不是仅仅亮度变化,这里叫做颜色Gamma矫正衰减系数应该比较合适 
计算颜色亮度和gamma值
有了颜色Gamma矫正衰减系数,然后知道Gamma矫正的值后,就可以对颜色进行Gamma矫正了,但在这之前需要钳制颜色亮度,因为Gamma其实本质可以理解为Pow(Color,gamma),对于大于1的进行Pow会导致变得非常亮
ClampColor组 这里对颜色各个分量取得最大值,如果大于1,就将整个颜色除以这个值进行压暗,保证颜色不变的情况下降低明度,钳制到1以下**
**Luminance组* 这里计算颜色的亮度值,因为Blender没有Luminance函数所以需要我们自己创建,参数有两个,一个是颜色,一个是各个通道的权重值,公式: 亮度值 = 0.299×R+0.587×G+0.114×B
使用颜色Gamma矫正衰减系数混合计算Gmma值,这里这个乘 0.2875和加1.4375的操作也属于经验值,并不是固定的,以效果为准。有了Gama值后,现在就进行颜色的Gamma矫正了。Blender直接使用Gamma节点,根据效果来调整强度,使用兰伯特控制,亮的部分就使用Gamma,暗的地方就减小Gamma强度使用GammaHalf
完整节点 
颜色混合输出

当前效果
左边是无处理,右边是进行颜色调整了的 可以看出处理过之后颜色变化更明显了,没有那么扁平了 
Enjoy Reading This Article?
Here are some more articles you might like to read next: