Maya 学习日志:Arnold(阿诺德)aiToon(卡通着色器)
卡通
卡通着色器是随轮廓过滤器一起提供的一个非真实照片级渲染 (NPR) 解决方案的一部分。
- 以下部分资料参考了 Arnold 的官方技术文档和图片范例。
目前,使用卡通着色器时存在一些限制。如下所述:
- 体积、运动模糊、景深和 VR 摄影机目前不能与卡通着色器结合使用。
- 如果像素强度大于 1.0(例如,错误地将背景着色器与天穹摄影机可见性组合在一起时),则卡通边可能会变成锯齿状。要解决这一问题,可以对摄影机 (AA) 采样数进行区间限定。


以下内容为此着色器部分设置参数,其他与标准曲面着色器类似或相同的设置参数以及容易理解的参数不做说明
-
Edge(边缘)
⇠ -
Edge Detection(边缘检测)
⇠ -
ESilhouette(轮廓)
⇠ -
Base(基础)
⇠ -
Specular(镜面反射)
⇠ -
Stylized Highlight(风格化高光)
⇠ -
Rim Lighting(边缘照明)
⇠
Edge(边缘)
Edge(边)
关闭时,将禁用边缘检测(默认情况下已启用)。
注意,要渲染出 aiToon(卡通着色器)的效果,需要将 Render Settings(渲染设置)⇢ Filter(过滤器)⇢ Type(类型)设置为 contour(轮廓)
图示


Edge Tonemap(边色调映射)
在此处连接一个渐变节点,可根据基础层的着色结果更改边颜色。


Edge Detection(边缘检测)
ID Difference(ID 差异)
如果启用,将利用相邻像素的 ID 差异进行边缘检测。


Shader Difference(着色器差异)
检测相邻采样的着色器差异。例如,当为单一多边形网格指定多个着色器时,该选项非常有用。



确保“角度阈值”(Angle Threshold)足够低,否则,您可能看不出差异。
Mask Color(遮罩颜色)
当相邻像素的遮罩颜色不同时,即表示检测到边缘。通过检测颜色差异来绘制任意形状时,我们假定“遮罩颜色”(Mask Color)已连接了纹理。
使用此参数,可以在任意位置绘制线条(过滤器会在遮罩颜色发生变化的位置绘制线条)。
UV Threshold(UV 阈值)
如果启用,将利用相邻像素的 UV 差异进行边缘检测。


Angle Threshold(角度阈值)
当小于 180 时,将利用相邻像素之间的角度差异进行边缘检测。



Silhouette(轮廓)
对象/着色器 ID 差异检测到的边线称为轮廓。如果此选项处于启用状态,将使用轮廓的“颜色”(Color)、“宽度比例”(Width Scale)、“不透明度”(Opacity)和“色调映射”(Tonemap)来绘制轮廓线。如果此选项处于禁用状态,轮廓线将继承内部边线的设置,即,绘制时采用边的“颜色”(Color)、“宽度比例”(Width Scale)、“不透明度”(Opacity)和“色调映射”(Tonemap)。
Width Scale(宽度比例)
轮廓线的最大宽度由轮廓过滤器的“宽度”(Width)参数决定。实际宽度是它与此参数相乘的结果。 线条样式可结合使用此参数和纹理来进行控制。
- 卡通着色器强制轮廓宽度始终大于内边宽度。
- 要将轮廓的“宽度比例”(Width Scale)增加到大于 1,需要增加轮廓的“过滤器宽度”(Filter Width)。但是,这样会增加渲染时间。



Base(基础)
Tonemap(色调映射)
在此处连接一个渐变节点,可创建单元外观(被视为色调映射)。
“基础色调映射”(Base Tonemap)对“基础颜色”(Base Color)有倍增效果。将“基础色调映射”(Base Tonemap)的直接漫反射映射到 UV,然后对渐变进行求值。
Specular(镜面反射)
Roughness(粗糙度)
控制镜面反射的光泽度。值越小,反射越清晰。对于两种极限条件,值为 0 将带来完美清晰的镜像反射效果,而 1.0 则会产生接近漫反射的反射效果。您应在此处连接贴图,这样可查看镜面反射高光的变化。



请注意,反射曲面中将不显示卡通边,除非镜面反射的“粗糙度”(Roughness)为 0。
将卡通着色器指定给地板平面:


Tonemap(色调映射)
在此处连接一个渐变节点,可创建单元外观(被视为色调映射)。


Stylized Highlight(风格化高光)
Light(灯光)
指定风格化高光所用的主灯光的名称。 可以使用以分号分隔的字符串(如“lightShape1;lightShape2”)来指定多个灯光。 支持的灯光类型包括远距离灯光、点光源、聚光灯和光度学灯光。
- 几何体灯光和天穹灯光不受支持,因为它们会产生模糊效果。
- “风格化高光”(Stylized Highlight)不能与曲线结合使用。 这将在以后的版本中进行修复。
Color(颜色)
可使用任意纹理(或 RGB 类型节点)在对象上创建风格化高光。如果什么都不连接,将禁用风格化高光。
- 使用连接到风格化高光颜色的纹理时,必须注意以下几点。在下面的示例中,右侧茶壶上作为高光颜色的窗格纹理可以正确渲染,因为图像周围有足够的空间。
Rim Lighting(边缘照明)
Light(灯光)
指定此处要使用的灯光的名称。边缘照明受此灯光阴影的影响。支持的灯光类型包括远距离灯光、点光源、聚光灯和光度学灯光。
- 几何体灯光和天穹灯光不受支持,因为它们会产生模糊效果。
- 边缘照明不支持多个灯光。
- 1.参考:Arnold for Maya 用户手册:卡通 ↩