该说的废话上一篇已经说过了,这里就直接上干货。
前部分讲解参数,后部分演示实例。
Edge
敲黑板!要显示Edge,务必启用contour_filter。属性栏也提示了,务必注意这种关键小细节。
默认处于启用状态,关闭时当然就是不显示Edge。
Edge
【Edge】控制是否启用Edge;
【Color】控制Edge颜色,允许连接贴图(比如使用渐变贴图制造断断续续的描边赶脚);
-
【Tonemap】使Edge颜色根据对象的着色变化而变化,比如:暗部Edge颜色深,亮部颜色浅;通常配合Ramp节点使用:
【Opacity】控制Edge透明度;
-
【Width scale】控制Edge粗细;
渲染设置中countor_filter的Width控制的是全局Edge粗细,这里的Width Scale控制使用该材质的Edge,这俩参数相乘,最终得出具体Edge粗细;
允许连接贴图控制;
增加数值会增加渲染时间,慎用;
此参数还可以避免Edge过于混乱,尤其是结构复杂的对象,可以通过连接facing_ratio节点实现:
Width Scale还可以基于摄像机镜头距离控制Edge粗细;
P.S.做动画时,Width Scale数值小于1,可能会出现“闪烁”,启用Sampling render setting(位于Samping render setting属性中)可解决此问题。
Edge detection
-
【ID difference】默认启用,启用时,Edge检测使用临近像素ID差;
Curve, Point, Shape IDs
ID difference 是根据curves(线),point(点),shape(面)来绘制描边的。每条线,每个面都有不同ID,每个点也会拥有不一样的ID。以下示例除用到的属性外,其他参数均为默认值。
下图示例中,大球只有一条Edge,大球上的小球有各自的Edge,这是因为小球使用粒子效果生成,每个粒子都可以视作一个Point,有不一样的ID,所以每个小球都有Edge,而中心的大球使用C4D原生模型球体,所有的原生基础模型(多边形)以及异形,只要是“整体的一个对象”,都只能算是一个shape(可以想象成一个模型外面包裹着的是一整个面),中间的点线面都属于这同一个shape,也就是说只有一个ID,因此大球只有最外面一条Edge:
-
【Shader difference】Edge检测使用临近着色器差异;例如,当多个着色器分配给单个多边形时,这非常有用:
还有一点需要注意,务必确保【Angle threshold】的值足够小,否则看不出Shader difference启用/禁用差异。
-
【Mask color】Edge检测使用临近像素颜色差;mask color可连接贴图,从而绘制任意线条;
也就是,利用此参数可以在对象表面任意位置绘制线条;
-
【UV threshold】启用后,Edge检测使用临近像素UV差;
-
【Angle threshold】当小于180°时,Edge检测使用临近像素角度差;
-
【Edge detection】Edge检测模式选择,有三种模式:Shading Normal /Smooth Normal /Geometric Normal;
Advanced edge control
-
【Priority】更改Edge的排序优先级;
-
【Ignore throughput】默认情况下,轮廓颜色(contour color)受光线吞吐量影响,如果反射或折射对象需要特定颜色,就需要启用Ignore throughput并使用ray_switch着色器;
-
【Use toon ID】可以指定名为Toon ID的String类型用户数据来控制Edge检测;不做特殊指定时,检测到的Edge使用对象自己的驱动名称toon-specific ID;
利用指定ID,可以将对象进行分组,指定需要进行Edge检测的部分;可配合【Priority】设定Edge优先级;
Silhouette
Edge检测使用Object/Shader ID差异检测到的线称为Silhouette,可以理解成“轮廓化描边”;
启用该选项后,将使用Silhouette的属性替代与Edge重合的部分属性;
文字可能有点说不明白,但是效果显而易见👇
下面将进行一个简单的实例演示:
用到的场景如下图所示,对场景中模型统一添加Toon Shader,渲染设置Ray Depth:0,这里用不到全局光照效果,关闭Ray Depth提高渲染效率,默认渲染效果如下:
接下来进行一些调整:
- 将Edge属性中Base Weight和Specular Weight的值减少为0,Emission Weight:1,效果如下:
- 减少Edge Angle Threshold值到10左右(数值根据场景大小自行设定),以显示更多细节:
-
继续增加细节,这里将用到Mask color;
创建一个Utility Shader,连接到Toon Shader > Main > Edge > Edge detection > Mask Color,Utility Shade mode:metal,Roughtness:0.01,效果如下:
减少Edge Width的值,差不多0.5左右:
- 调整Utility的各项属性,会有很多不一样的效果:
-
或者改变一下线条颜色什么的,多多尝试:
接下来...........可以开始点赞、打赏什么的了
嘻嘻
以上,Over。
Reference:
1.Solidangle Support & Documentation
禁止私自转载,转载需征得老夫同意。
否则,必追究。