【C4DtoA 11】Arnold渲染器(材质五): Ray switch/AO ...
VIEW CONTENTS

【C4DtoA 11】Arnold渲染器(材质五): Ray switch/AO ...

2022-6-2 12:40| 发布者: 我是的十八簿| 查看: 141| 评论: 2
摘要: Tips:共计约2400字,估计阅读用时8min,理论用时30+min;多图预警----------------------------------相关教学传送门:本专栏持续更新中,欢送存眷。----------------------------------本篇将讨论三个着色器,分别 ...

Tips:共计约2400字,估计阅读用时8min,理论用时30+min;

多图预警

----------------------------------

相关教学传送门:

本专栏持续更新中,欢送存眷。

----------------------------------

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

Ray switch shader 光线开关着色器

  • Ray switch是一个共同而又强悍的着色器,它允许给不同光线指定不同着色器,或者关闭某一光线着色器,例如把指定物体的镜面反射颜色改为红色。这能够减少着色的复杂度,从而节省渲染时间,也能够增加着色的艺术控制。也能够用来移除不须要的次要光线(Specular/SSS)以及控制阴影通明度的颜色、仿真光散射穿过皮肤组织、或只给摄像机增加次要镜面反射;
  • 类似还有Ray Switch RGBA,用来调整色彩;
  • 新版Arnold不需要在材质栏中单独创建一个Ray swith着色器,而是通过Standard_surface的Network editor,添加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参数详解:



【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常用来仿真全局照明(GI, global illumination),可说是全局照明的“近似”形式,它能够仿真场景中物体漫反射之间的复杂交互。
  • 以前使用GI非常耗时(如今也不怎样节能啊),所以设计师们经常使用AO来大致仿真GI。Ambient occlusion虽然不是完全符合物理传神(相对于完全使用GI),但是渲染速度非常快,而且能够产生传神的效果。
  • 如今大多用AO来增加细节,好比给物体边角增加一些破损、污渍等。
  • AO素质上是在上半球中发射一些光线,这些光线由阴影点切面定义。AO发出光线的击中率除以光线总数的比率做为颜色返回。当光线命中率 / 总光线=0时,输出被视为完全未遮挡或“亮堂”(默认条件下为白色);当光线命中率 / 总光线=1 时,输出被视为完全遮挡或“黑暗”(默认条件下为黑色);在两者之间,有这两个值的线性插值。

Ambient occlusion调出方案:

同Ray switch,新版Arnold中也是操做在Network Editor中添加节点的方式调出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能够输出线框风格的效果图。
  • 允许与其他着色器进行合成或输出通道(能够操做lay_raba进行混合,Wireframe以正片叠底的方式进行混合。此处先不展开详细讲授。)



调出方案同上:




Wireframe参数详解:




Wireframe属性菜单

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




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




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






也能够使用贴图控制边线及面颜色

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




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




以上,Over

----------------------------------

这不是单篇幅教学!是系列专栏,从安装初步深度讲授Arnold,其他篇幅传送门:

虽然是不定期更新,但绝对干货满满。

专栏持续更新中,点存眷,不吃亏。

(我也想定期更新 可是做不到 对啊 因为懒)

----------------------------------

原创内容,制止私自转载。


路过

雷人

握手

鲜花

鸡蛋
刘冠华

确实看不懂,,,

2022-6-2 12:41 引用
塞翁364

这节是不是不太实用啊?感觉也有难度

2022-6-2 12:41 引用

关闭

菜鸟C4D推荐上一条 /9 下一条

菜鸟C4D与你一起从零开始!
菜鸟C4D微信公众号