阿诺德教程

Arnold for C4D 11 【材质(五)】Ray swi

2018-06-08  本文已影响144人  卜噪大仙

本篇将讨论三个着色器,分别是Ray switch shader,AO(Ambient Occlusion) shader以及Wireframe shader。

Ray switch shader 光线开关着色器

举个栗子:
示例场景中用了非常简单的几个对象:一个小人模型,一面镜子,灯光使用Arnold Sky。
① 选择你所需要添加ray_switch_shader的着色器(示例中我选的是小人的皮肤);
② 在选中的皮肤着色器的Network Editor中新建ray_switch_shader,将其连接到Arnold Beauty端口;

创建ray_switch_shader节点

③ 此时,在IPR Window中可以看到小人及镜子里的反射变成了黑色,因为还未给Ray switch定义任何属性;
④ 将之前的皮肤着色器节点(standard_surface)连接到Ray switch的Camera以及Specular reflection,即可看到恢复到最初的效果,也就是说,把皮肤着色器的属性赋予给了Camera和Specular reflection,利用皮肤着色器来控制Ray switch的CameraSpecular reflection

连接好之后便可以看到小人变回之前的效果了

④ 另外新建一个standard_shader,将Base颜色改为红色,并重命名为“red”,将“red”连接到Ray switch的Specular reflection,现在可以看到小人镜子里的影子变成了红色,也就是说,现在Ray switch的Specular reflection属性由“red”控制;

⑤ 新建一个state_vector节点,连接到Ray switch的Diffuse reflection,此时Ray switch的Diffuse reflection便会根据state_vector来计算;

Ray switch参数详解:
Ray switch菜单
【Camera】计算Camera光线时,插入你想要使用的着色器的输出。比如前面用皮肤着色器来控制。

【Shadow】 对物体上的透明阴影进行着色器控制。 此参数可以将Ray Switch着色器连接到标准表面着色器的Opacity参数。 这样你就可以得到一个不同于对象实际透明度的阴影。 例如,要减少对象投射的阴影量,或使用一个镂空的不透明图案。必须要使用Arnold标签关闭透明度(Opaque)才可以看到效果。

再次强调,所有涉及透明度的对象,都要关闭Opaque。

例如,将场景中阴影颜色改为红色:
新建standard_shader→重命名为red→提高red节点Transmission权重,并将Transmission颜色改为红色→连接到Ray switch的Shadow

注意:是改变节点中Transmission的属性,对象关闭Opaque:

【Diffuse reflection】计算Diffuse reflection光线时,插入你想要使用的着色器的输出。

【Diffuse transimission】计算Diffuse transimission光线时,插入你想要使用的着色器的输出。

【Specular reflection】计算Specular reflection光线时,插入你想要使用的着色器的输出。

【Specular transimission】计算Specular transimission光线时,插入你想要使用的着色器的输出。

【Volume】计算Volume光线时,插入你想要使用的着色器的输出。

具体效果我就不多做演示了,大家多试一下,如果遇到了什么问题,可以在评论区留言。

Ambient occlusion 环境吸收着色器

Ambient occlusion调出方法:
同Ray switch,新版Arnold中也是利用在Network Editor中添加节点的方式调出Ambient occlusion。

调出Ambient occlusion
Ambient occlusion参数详解:

【Samples】控制发射的光线数量,以计算发射光线数/总比例。 增加样本数量可以减少噪点得到更好的渲染质量。

【Spread】法线向量N周围的角度扩展,范围[0,1],其中1映射到90度(完整的半球)。 1.0是最常见的值。 其他值可能会产生无用的结果。

【White】光线击中率/总光线=0时(完全未遮挡)的输出颜色。


可以将白色属性更改为白色以外的颜色以实现特定外观:

【Black】光线击中率/总光线=1时(完全遮挡)的输出颜色。 对于特定的外观,可以将黑色属性更改为黑色以外的颜色。 例如,可以用于着色地板阴影的颜色:

【Falloff】沿光线距离的遮挡的指数衰减率。 它与遮挡光线击中的半透明表面不兼容。

【Near clip】Sample的最小遮挡范围。

【Far clip】Sample的最大遮挡范围。

【Normal】输出一个法向量可以连接到ambocc,lambert和standard_surface的常规参数中。
【Invert nomals】该属性改变被跟踪光线的方向。 当它关闭时,光线被追踪在表面之外;当它开启时,光线追踪在表面之内。

最常见的用途是模拟污垢或侵蚀。允许连接贴图控制“污垢”。




举个栗子:
下图砖块路的例子中,使用Ambient Occlusion正片叠底到原始渲染画面之上,用来增加砖块之间的“污垢”:

【Trace set】字符串标签定义光线要追踪或避免的对象。 作用对象使用Arnold参数标签属性进行标记。

举个栗子:
下图中可看到:Plane之上有三个模型——Sphere.1/Sphere/Tours。为Plane材质添加AO,光线追踪作用于定义为the_sphere的Sphere模型和未定义的Sphere.1模型(未定义对象,默认追踪),排除追踪 定义为the_tours的Tours模型(the_tours是在Tours模型中利用Arnold标签的Trace sets属性定义的——将Value1定义为the_tours)。在IPR Window中可以看到Tours模型在Plane上没有阴影,就是因为Tours在Plane上的所有光线追踪都被Plane的AO排除了。

AO效果示意图

【Inclusive】若开启,则仅对选定对象(及未定义对象)作追踪;若关闭,则仅不追踪选定对象。
敲黑板:未定义对象默认使用追踪

【Self only】只采集针对同一物体的遮挡。



Wireframe shader 线框着色器

调出方法同上:



Wireframe参数详解:
Wireframe属性菜单

【Edge type】决定如何表示网格。 有三种模式:triangles/polygons/patches。 如果选择triangles,多边形将被分解为三角形镶嵌;polygons呈现为多边形面;patches目前暂时不支持。

【Fill color】填充多边形面的颜色。

【Line color】多边形边线的颜色。


也可以使用贴图控制边线及面颜色

【Line width】多边形边线的厚度,默认为1。

【Raster space】开启时边线厚度使用屏幕像素,关闭时使用真实物理世界尺寸。

END.
下次见。

禁止私自转载。
转载请私信。

上一篇 下一篇

猜你喜欢

热点阅读