1、何为rim shader?
Rim shader翻译过来叫做边缘光材质球,其实也就是实现一种边缘光提亮的效果,让角色的轮廓(边缘)得到强调。它既可以直接作为最终渲染结果来使用,也可以单独输出成一种合成用的调色层。这种效果在cg片中,尤其在卡通风格的动画片里经常被用到。下图1是rim shader着色渲染的效果示意:

上图1中三个角色中均使用到了rim_shader,前两个黑白的是rim_shader简单进行颜色反转的结果,最后一个是蓝色底色的shader+rim_shader得到的结果。
一、图1最右边巨人的效果:
最右边的那个巨人的效果是一个samplerInfor节点的facingRatio通道连接给ramp节点的uCoord和vCoord通道,然后再把这个ramp节点的outColor连接给aiStandard节点的diffuse color,如下图2:

注意:请务必删除ramp节点创建时所自动创建的place2dTexture节点,否则samplerInfo怎么连都不起作用。
中间的ramp3节点设置如下图3:
把上图3中的rimShader2赋予给巨人,得到渲染结果如下图4:

二、图1中间巨人的效果:
把右边巨人的ramp效果反向一下,就可以得到中间巨人的效果了。这个效果应该是rim shader最常用的效果,见图5、6、7、8:



注意一下图8这种轮廓光,用一般的兰伯特材质打光是打不出这种风格的轮廓效果的。下面图9就是标准lambert材质球得到的结果,可以对比下:
三、图1最左边巨人的效果:
这种效果就是基本色+rim_shader做加法运算得到的结果,可以理解为这种组合方式在三维软件渲染中就可以直接得到接近最终的效果,后期软件中只需要简单调色就可以。实现方式如下图10:

上图10中,samplerInfo1和ramp2以及rimShader1就不必多说了,见图1中间巨人效果的实现方法。BasicShader就是一个底色材质球,这个材质球的调节方法就和通常调材质球没有区别,之后rimShader1(aiStandard材质球)的outColor输出给plusMinusAverage1(+|- Average节点)的input3D[1],basicSahder(aiStandard材质球)的outColor输出给plusMinusAverage1的input3D[0]。plusMinusAverage1的output3D端口输出给surfaceShader的outColor。plusMinusAverage1节点的Operation设置为sum,也就是相加模式,见下图11:

大功告成!!
赋材质给巨人,渲染效果如下图12、13、14:




