Maya 学习日志:Arnold(阿诺德)aiToon(卡通着色器)

卡通

卡通着色器是随轮廓过滤器一起提供的一个非真实照片级渲染 (NPR) 解决方案的一部分。

目前,使用卡通着色器时存在一些限制。如下所述:

  • 体积、运动模糊、景深和 VR 摄影机目前不能与卡通着色器结合使用。
  • 如果像素强度大于 1.0(例如,错误地将背景着色器与天穹摄影机可见性组合在一起时),则卡通边可能会变成锯齿状。要解决这一问题,可以对摄影机 (AA) 采样数进行区间限定。
请注意,“基础色调映射”(Base Tonemap)(使用渐变)的外观在天穹照明(软渐变)和带方向性的灯光(硬渐变)条件下差别很大。
天穹照明
带方向性的灯光的效果

以下内容为此着色器部分设置参数,其他与标准曲面着色器类似或相同的设置参数以及容易理解的参数不做说明


Edge(边缘)

Edge(边)

关闭时,将禁用边缘检测(默认情况下已启用)。

注意,要渲染出 aiToon(卡通着色器)的效果,需要将 Render Settings(渲染设置)⇢ Filter(过滤器)⇢ Type(类型)设置为 contour(轮廓)

图示

禁用(仅自发光)。
启用(默认值)。需要启用“轮廓”(Contour)过滤器。

Edge Tonemap(边色调映射)

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

默认值(未连接任何对象)
坡度渐变

Edge Detection(边缘检测)

ID Difference(ID 差异)

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

启用(默认)
禁用

Shader Difference(着色器差异)

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

针对所有 RGB 着色器启用(默认值)
绿色和蓝色:禁用
红色:禁用(ID 差异:禁用)

确保“角度阈值”(Angle Threshold)足够低,否则,您可能看不出差异。

Mask Color(遮罩颜色)

当相邻像素的遮罩颜色不同时,即表示检测到边缘。通过检测颜色差异来绘制任意形状时,我们假定“遮罩颜色”(Mask Color)已连接了纹理。

使用此参数,可以在任意位置绘制线条(过滤器会在遮罩颜色发生变化的位置绘制线条)。
将不同的着色器连接到“遮罩颜色”(Mask Color)所实现的风格化效果

UV Threshold(UV 阈值)

如果启用,将利用相邻像素的 UV 差异进行边缘检测。

0(默认值)
0.1

Angle Threshold(角度阈值)

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

针对所有 RGB 着色器启用(默认值)
绿色和蓝色:禁用
红色:禁用(ID 差异:禁用)

“角度阈值”(Angle Threshold)的关键帧已设置为从 180 到 10


Silhouette(轮廓)

对象/着色器 ID 差异检测到的边线称为轮廓。如果此选项处于启用状态,将使用轮廓的“颜色”(Color)、“宽度比例”(Width Scale)、“不透明度”(Opacity)和“色调映射”(Tonemap)来绘制轮廓线。如果此选项处于禁用状态,轮廓线将继承内部边线的设置,即,绘制时采用边的“颜色”(Color)、“宽度比例”(Width Scale)、“不透明度”(Opacity)和“色调映射”(Tonemap)。

Width Scale(宽度比例)

轮廓线的最大宽度由轮廓过滤器的“宽度”(Width)参数决定。实际宽度是它与此参数相乘的结果。 线条样式可结合使用此参数和纹理来进行控制。

  • 卡通着色器强制轮廓宽度始终大于内边宽度。
  • 要将轮廓的“宽度比例”(Width Scale)增加到大于 1,需要增加轮廓的“过滤器宽度”(Filter Width)。但是,这样会增加渲染时间。
0.25
0.5
1(默认值)

Base(基础)

Tonemap(色调映射)

在此处连接一个渐变节点,可创建单元外观(被视为色调映射)。
天穹照明的效果
带方向性的灯光
“基础色调映射”(Base Tonemap)对“基础颜色”(Base Color)有倍增效果。将“基础色调映射”(Base Tonemap)的直接漫反射映射到 UV,然后对渐变进行求值。


Specular(镜面反射)

Roughness(粗糙度)

控制镜面反射的光泽度。值越小,反射越清晰。对于两种极限条件,值为 0 将带来完美清晰的镜像反射效果,而 1.0 则会产生接近漫反射的反射效果。您应在此处连接贴图,这样可查看镜面反射高光的变化。

0.1(默认值)
0.6
0.3

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

0.1(默认值)
0

Tonemap(色调映射)

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

镜面反射度(无色调映射)
渐变连接到镜面反射色调映射

增加镜面反射的“粗糙度”(Roughness)时的镜面反射色调映射


Stylized Highlight(风格化高光)

Light(灯光)

指定风格化高光所用的主灯光的名称。 可以使用以分号分隔的字符串(如“lightShape1;lightShape2”)来指定多个灯光。 支持的灯光类型包括远距离灯光、点光源、聚光灯和光度学灯光。

  • 几何体灯光和天穹灯光不受支持,因为它们会产生模糊效果。
  • “风格化高光”(Stylized Highlight)不能与曲线结合使用。 这将在以后的版本中进行修复。

Color(颜色)

可使用任意纹理(或 RGB 类型节点)在对象上创建风格化高光。如果什么都不连接,将禁用风格化高光。

  • 使用连接到风格化高光颜色的纹理时,必须注意以下几点。
    红色圆圈内的纹理区域被绘成高光
    对于方形高光,使用这样的纹理
    在下面的示例中,右侧茶壶上作为高光颜色的窗格纹理可以正确渲染,因为图像周围有足够的空间。
    错误
    正确

Rim Lighting(边缘照明)

Light(灯光)

指定此处要使用的灯光的名称。边缘照明受此灯光阴影的影响。支持的灯光类型包括远距离灯光、点光源、聚光灯和光度学灯光。

  • 几何体灯光和天穹灯光不受支持,因为它们会产生模糊效果。
  • 边缘照明不支持多个灯光。