
参考了Lightning Boy Studio的Toon shader教程,我对前一个较为简单的Toon shader做了改进。主要分为三个部分:金属质感,高光背光,和描边。
金属质感主要是由反射环境光来体现的,对于2D渲染我们可以使用一个通用的纹理文件。

金属质感的环境光纹理
这里上半亮的部分就是天空,下半暗的部分就是大地。我们直接把它混合到基本材质上,就会有一定的金属质感。这里通过一个幂函数可以增加金属质感的对比度。

金属质感的节点设置
有无金属质感如图所示,注意胸部!

有金属质感

无金属质感

高光的节点设置
高光使用specular shader转换成RGB格式完成,注意这里Base Color为黑色,为了不影响后面控制高光颜色的节点。然后我们使用两个ColorRamp做出柔和高光以及硬高光的效果,混合在一起,由softness控制。Specular Size控制高光大小,Specular Color控制高光的颜色。

主光&背光的节点设置(前半)
主光和背光需要两个光源来完成,可是我们又不希望受到这两个光源互相影响。这里我们把主光(Key Light)调成红色,背光(Back Light)调成绿色,然后使用分离RGB节点。红色作为主光输入,绿色作为背光输入。之后我们加了一个阴影颜色节点,使用Lighten混合模式,可以调整阴影的颜色。材质颜色仍用两个RGB曲线完成,和简易版的Toon shader相似。

主光&背光的节点设置(后半)
光线添加的顺序依次是:主光(混合阴影颜色)+ 材质纹理 + 金属光 + 高光 + 背光。为了只用主光控制高光位置,背光(绿光)的specular值要设为0。接下来是光线布局:

主光位于左下方,背光位于左上方,右侧可见主光颜色为红色,specular值为1
背光的效果(在胳膊上侧一条白线)

背光效果
这里描边采用了inverted hull方法,需要添加一个新的材质,取名叫outline,使用emission节点,颜色为黑色。

添加新的材质
在modifier一栏添加solidify效果,设置如下,注意要反法线,材质offset为1(outline材质index为1)

Solidify modifier
以上就是进阶Toon shader的全部内容。附上视频内容:
