Arnold for C4D 11 【材質(zhì)(五)】Ray switch/AO/Wireframe

本篇將討論三個(gè)著色器,分別是Ray switch shader,AO(Ambient Occlusion) shader以及Wireframe shader。

Ray switch shader 光線開(kāi)關(guān)著色器

  • Ray switch是一個(gè)獨(dú)特而又強(qiáng)大的著色器,它允許給不同光線指定不同著色器,或者關(guān)閉某一光線著色器,例如把指定對(duì)象的鏡面反射顏色改為紅色。這可以減少著色的復(fù)雜度,從而節(jié)省渲染時(shí)間,也可以增加著色的藝術(shù)控制。也可以用來(lái)移除不必要的次要光線(Specular/SSS)以及控制陰影透明度的顏色、仿真光散射穿過(guò)皮膚組織、或只給攝像機(jī)增加次要鏡面反射;
  • 類(lèi)似還有Ray Switch RGBA,用來(lái)調(diào)整色彩;
  • 新版Arnold不需要在材質(zhì)欄中單獨(dú)創(chuàng)建一個(gè)Ray swith著色器,而是通過(guò)Standard_surface的Network editor,添加ray_switch_shader節(jié)點(diǎn)的方法將其調(diào)出。

舉個(gè)栗子:
示例場(chǎng)景中用了非常簡(jiǎn)單的幾個(gè)對(duì)象:一個(gè)小人模型,一面鏡子,燈光使用Arnold Sky。
① 選擇你所需要添加ray_switch_shader的著色器(示例中我選的是小人的皮膚);
② 在選中的皮膚著色器的Network Editor中新建ray_switch_shader,將其連接到Arnold Beauty端口;

創(chuàng)建ray_switch_shader節(jié)點(diǎn)

③ 此時(shí),在IPR Window中可以看到小人及鏡子里的反射變成了黑色,因?yàn)檫€未給Ray switch定義任何屬性;
④ 將之前的皮膚著色器節(jié)點(diǎn)(standard_surface)連接到Ray switch的Camera以及Specular reflection,即可看到恢復(fù)到最初的效果,也就是說(shuō),把皮膚著色器的屬性賦予給了Camera和Specular reflection,利用皮膚著色器來(lái)控制Ray switch的CameraSpecular reflection;

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

④ 另外新建一個(gè)standard_shader,將Base顏色改為紅色,并重命名為“red”,將“red”連接到Ray switch的Specular reflection,現(xiàn)在可以看到小人鏡子里的影子變成了紅色,也就是說(shuō),現(xiàn)在Ray switch的Specular reflection屬性由“red”控制;

⑤ 新建一個(gè)state_vector節(jié)點(diǎn),連接到Ray switch的Diffuse reflection,此時(shí)Ray switch的Diffuse reflection便會(huì)根據(jù)state_vector來(lái)計(jì)算;


Ray switch參數(shù)詳解:

Ray switch菜單

【Camera】計(jì)算Camera光線時(shí),插入你想要使用的著色器的輸出。比如前面用皮膚著色器來(lái)控制。

【Shadow】 對(duì)物體上的透明陰影進(jìn)行著色器控制。 此參數(shù)可以將Ray Switch著色器連接到標(biāo)準(zhǔn)表面著色器的Opacity參數(shù)。 這樣你就可以得到一個(gè)不同于對(duì)象實(shí)際透明度的陰影。 例如,要減少對(duì)象投射的陰影量,或使用一個(gè)鏤空的不透明圖案。必須要使用Arnold標(biāo)簽關(guān)閉透明度(Opaque)才可以看到效果。

再次強(qiáng)調(diào),所有涉及透明度的對(duì)象,都要關(guān)閉Opaque。

例如,將場(chǎng)景中陰影顏色改為紅色:
新建standard_shader→重命名為red→提高red節(jié)點(diǎn)Transmission權(quán)重,并將Transmission顏色改為紅色→連接到Ray switch的Shadow

注意:是改變節(jié)點(diǎn)中Transmission的屬性,對(duì)象關(guān)閉Opaque:

【Diffuse reflection】計(jì)算Diffuse reflection光線時(shí),插入你想要使用的著色器的輸出。

【Diffuse transimission】計(jì)算Diffuse transimission光線時(shí),插入你想要使用的著色器的輸出。

【Specular reflection】計(jì)算Specular reflection光線時(shí),插入你想要使用的著色器的輸出。

【Specular transimission】計(jì)算Specular transimission光線時(shí),插入你想要使用的著色器的輸出。

【Volume】計(jì)算Volume光線時(shí),插入你想要使用的著色器的輸出。

具體效果我就不多做演示了,大家多試一下,如果遇到了什么問(wèn)題,可以在評(píng)論區(qū)留言。

Ambient occlusion 環(huán)境吸收著色器

  • Ambient occlusion常用來(lái)模擬全局照明(GI, global illumination),可以說(shuō)是全局照明的“近似”模式,它可以仿真場(chǎng)景中對(duì)象漫反射之間的復(fù)雜交互。
  • 以前使用GI非常耗時(shí)(現(xiàn)在也不怎么節(jié)能?。?,所以設(shè)計(jì)師們經(jīng)常使用AO來(lái)大致模擬GI。Ambient occlusion雖然不是完全符合物理真實(shí)(相對(duì)于完全使用GI),但是渲染速度非常快,并且可以產(chǎn)生逼真的效果。
  • 現(xiàn)在大多用AO來(lái)增加細(xì)節(jié),比如給對(duì)象邊角增加一些破損、污漬等。
  • AO本質(zhì)上是在上半球中發(fā)射一些光線,這些光線由陰影點(diǎn)切面定義。AO發(fā)出光線的擊中率除以光線總數(shù)的比率作為顏色返回。當(dāng)光線命中率 / 總光線=0時(shí),輸出被視為完全未遮擋或“明亮”(默認(rèn)情況下為白色);當(dāng)光線命中率 / 總光線=1時(shí),輸出被視為完全遮擋或“黑暗”(默認(rèn)情況下為黑色);在兩者之間,有這兩個(gè)值的線性插值。

Ambient occlusion調(diào)出方法:
同Ray switch,新版Arnold中也是利用在Network Editor中添加節(jié)點(diǎn)的方式調(diào)出Ambient occlusion。

調(diào)出Ambient occlusion


Ambient occlusion參數(shù)詳解:

【Samples】控制發(fā)射的光線數(shù)量,以計(jì)算發(fā)射光線數(shù)/總比例。 增加樣本數(shù)量可以減少噪點(diǎn)得到更好的渲染質(zhì)量。

【Spread】法線向量N周?chē)慕嵌葦U(kuò)展,范圍[0,1],其中1映射到90度(完整的半球)。 1.0是最常見(jiàn)的值。 其他值可能會(huì)產(chǎn)生無(wú)用的結(jié)果。

【W(wǎng)hite】光線擊中率/總光線=0時(shí)(完全未遮擋)的輸出顏色。


可以將白色屬性更改為白色以外的顏色以實(shí)現(xiàn)特定外觀:

【Black】光線擊中率/總光線=1時(shí)(完全遮擋)的輸出顏色。 對(duì)于特定的外觀,可以將黑色屬性更改為黑色以外的顏色。 例如,可以用于著色地板陰影的顏色:

【Falloff】沿光線距離的遮擋的指數(shù)衰減率。 它與遮擋光線擊中的半透明表面不兼容。

【Near clip】Sample的最小遮擋范圍。

【Far clip】Sample的最大遮擋范圍。

【Normal】輸出一個(gè)法向量可以連接到ambocc,lambert和standard_surface的常規(guī)參數(shù)中。
【Invert nomals】該屬性改變被跟蹤光線的方向。 當(dāng)它關(guān)閉時(shí),光線被追蹤在表面之外;當(dāng)它開(kāi)啟時(shí),光線追蹤在表面之內(nèi)。

最常見(jiàn)的用途是模擬污垢或侵蝕。允許連接貼圖控制“污垢”。




舉個(gè)栗子:
下圖磚塊路的例子中,使用Ambient Occlusion正片疊底到原始渲染畫(huà)面之上,用來(lái)增加磚塊之間的“污垢”:

【Trace set】字符串標(biāo)簽定義光線要追蹤或避免的對(duì)象。 作用對(duì)象使用Arnold參數(shù)標(biāo)簽屬性進(jìn)行標(biāo)記。

舉個(gè)栗子:
下圖中可看到:Plane之上有三個(gè)模型——Sphere.1/Sphere/Tours。為Plane材質(zhì)添加AO,光線追蹤作用于定義為the_sphere的Sphere模型和未定義的Sphere.1模型(未定義對(duì)象,默認(rèn)追蹤),排除追蹤 定義為the_tours的Tours模型(the_tours是在Tours模型中利用Arnold標(biāo)簽的Trace sets屬性定義的——將Value1定義為the_tours)。在IPR Window中可以看到Tours模型在Plane上沒(méi)有陰影,就是因?yàn)門(mén)ours在Plane上的所有光線追蹤都被Plane的AO排除了。

AO效果示意圖

【Inclusive】若開(kāi)啟,則僅對(duì)選定對(duì)象(及未定義對(duì)象)作追蹤;若關(guān)閉,則僅不追蹤選定對(duì)象。
敲黑板:未定義對(duì)象默認(rèn)使用追蹤。

【Self only】只采集針對(duì)同一物體的遮擋。



Wireframe shader 線框著色器

  • Wireframe僅渲染模型的邊線。
  • 利用Wireframe可以輸出線框風(fēng)格的效果圖。
  • 允許與其他著色器進(jìn)行合成或輸出通道(可以利用lay_raba進(jìn)行混合,Wireframe以正片疊底的方式進(jìn)行混合。此處先不展開(kāi)詳細(xì)講解。)

調(diào)出方法同上:



Wireframe參數(shù)詳解:
Wireframe屬性菜單

【Edge type】決定如何表示網(wǎng)格。 有三種模式:triangles/polygons/patches。 如果選擇triangles,多邊形將被分解為三角形鑲嵌;polygons呈現(xiàn)為多邊形面;patches目前暫時(shí)不支持。

【Fill color】填充多邊形面的顏色。

【Line color】多邊形邊線的顏色。


也可以使用貼圖控制邊線及面顏色

【Line width】多邊形邊線的厚度,默認(rèn)為1。

【Raster space】開(kāi)啟時(shí)邊線厚度使用屏幕像素,關(guān)閉時(shí)使用真實(shí)物理世界尺寸。

END.
下次見(jiàn)。

禁止私自轉(zhuǎn)載。
轉(zhuǎn)載請(qǐng)私信。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 接上篇。 八、Arnold Sky(阿諾德天空) 用來(lái)模擬場(chǎng)景中天空的光線。 也可以使用高動(dòng)態(tài)范圍(HDR)圖像來(lái)...
    卜噪大仙閱讀 15,010評(píng)論 10 59
  • Babybus-u3d技術(shù)交流-【淺墨Unity3D Shader編程】之二 雪山飛狐篇:Unity的基本Shad...
    Babybus_Unity閱讀 5,875評(píng)論 4 61
  • <轉(zhuǎn)>我也忘了轉(zhuǎn)自哪里,抱歉,感謝原作者 什么是Shader Shader(著色器)是一段能夠針對(duì)3D對(duì)象進(jìn)行操作...
    星易乾川閱讀 5,846評(píng)論 1 16
  • 刷朋友圈,翻到了朋友寫(xiě)的戀愛(ài)小記。在有些凌亂的文字中,那娓娓道來(lái)的溫暖充滿(mǎn)了幸福。讀完,除了有對(duì)她的祝福外,還有些...
    Anxin222閱讀 291評(píng)論 0 0
  • 秋夜無(wú)眠酒入腸, 流云千里斷離殤, 寒山獨(dú)院夢(mèng)霓裳。 冷簟相依神悵惘, 青燈作伴意彷徨。 望鄉(xiāng)興嘆淚千行。
    望雨知秋閱讀 486評(píng)論 0 1

友情鏈接更多精彩內(nèi)容