

下一步是添加光泽元素。它看起来是违反直觉的,这是我们将要使用其它toon shader在diffuse模式里。结果发现,设置smooth值到0将创建一个非常尖锐的终结线不带过渡在灯光和阴影之间,创建一个光滑观察。在必要情形下例如此例,一个toon shader在diffuse模式带smooth设置为0将给我们一个跟好的结果比一个toon shader在光滑模式。为了获取更多微妙的细节在必要的区域,我们将使用同样的颜色我们用于diffuse元素,然后降低到80%使用HSV节点。然后代替连接我们的diffuse和光滑元素带一个mix shader节点。驱动由一个层的重量节点,我们将简单使用add shader节点。




获取更多的细节展示,我们可分配这个材质不同的变化到我们模型的部分。


渲染参数
在到达后期章节前,我们必须设置这个场景的渲染设置。


Light paths:这里是设计卡通风格的渲染,所以和现实场景的渲染有所区别。所以我们不需要灯光四处波动。设置最小最大波动为0且关闭散焦。
Sampling:0反弹和硬灯光意味着噪声将被降低到几乎不用在意。通常50采样就可以获取一个足够干净的渲染。你可以使用更少的采样且可能没有更多不同到你的眼睛。但是边沿过滤节点在后期会注意这个不同且返回许多噪声在边沿我们需要我们的外形。并且,这个渲染器技术发展很快,所以低采样不会有太多好处。
Film:我们将要将我们的场景分为*background*和*foreground*渲染层,所以为了能合成他们我们需要开启过渡film。
如同我上面说的,在到达合成章节前,我们必须创建两个渲染层:Foreground和Background。这个是必要的来进行
正确的
边沿探测,且能帮助我们加速渲染(比在背景渲染层通道快很多)。它也会允许我们设置不同轮廓给背景或者前景元素。
Foreground渲染层:这个渲染层会包含所有场景内的物体除了背景元素比如地板,墙,天花板,风景或者地形。我们必须总是使能normal传入到渲染层中,作为必要的边探测在后期合成。你可以看见在下面的屏幕截图,这个渲染层只包含第一层,我们在这里放置了每个物体除了地板。


Backgroudn渲染层:这个渲染层用于存放背景元素例如地板,墙,天花板,风景或者地形。注意在下面的屏幕截图中我们只将这个层放到第二层,我们在这里放置地板。我们将使能normal传入到这个渲染层在我们想获取轮廓绘制到背景的情形的时候。在许多带简单背景情形下,比如这个场景里面的,我们能设置一个更低的采样给这层,可以加速渲染。这个可通过调整*Samples*指示器在下面的屏幕截图。如果我们使用默认值0,这个渲染层将被渲染使用场景同样的采样率。


合成
我们现在能点击渲染并开始合成。这个是节点配置我们将设置在合成器来创建我们的轮廓:


如同你能看的我们提取内部和外部轮廓从foreground渲染层。我们不提取轮廓从background渲染层在这个例子里因为地板只是一个很简单的平面。一旦我们提出出我们的轮廓,我们合成到background和foreground且然后乘(multiply)这个结果由内部和外部轮廓在独立步骤中,所以我们能使用不同强度的轮廓。
内部轮廓
这个是normal传入到演示的。我们会首先分离normal输出在foreground渲染层到它的HSV组件和过滤它的V(for Value)输出使用一个edge探测过滤器。在这个情形下我们将使用kirsch,但是在某一场景Prewitt和Soble也可以使用。
结果图像能展示一些噪点在源渲染比较暗的地方,这个可以被解决由提高factor在过滤器中。随后我们将翻转颜色来获取黑色边带一个白底背景,应用一个Dilate/Erode过滤器来使边更加均匀以及用高斯模糊(blur)来进行一些反锯齿。如果你不确定你将改变分辨率在未来,设置相对值给高斯模糊是比较好的,这个模式总是输出一样在不同的分辨率下,通过补偿。最后当我们应用这个轮廓乘(multplying)我们渲染,我们会使用0.4的因数,这个将带来一个巧妙的轮廓完整的整合到图像中。


