Arnold for C4D 11 【材质(五)】Ray switch/AO/Wireframe

本篇将讨论三个着色器,分别是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参数详解:

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


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】开启时边线厚度使用屏幕像素,关闭时使用真实物理世界尺寸。

END.
下次见。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容