利用MAYA制作電子顯微鏡下的材質(zhì)
01通過一個電子顯微鏡得到的照片物體在面對攝像時趨向有一個黑色的外觀,,并且與攝像機(jī)垂直的表面有一發(fā)光的部分。
02電子顯微鏡材質(zhì)通過聯(lián)合幾個功能節(jié)點(diǎn)和紋理來完成一個相似的外觀。
這個文件包括電子顯微鏡的材質(zhì)網(wǎng)絡(luò)。
這個材質(zhì)網(wǎng)絡(luò)插入一個電子顯微鏡的表面材質(zhì)創(chuàng)建一個凹凸表面的外觀,依靠每個點(diǎn)在面對攝像機(jī)的方向來在黑色和淡藍(lán)色之間進(jìn)行插值。這個效果里最有趣的方面是在那里是沒有凹凸節(jié)點(diǎn)用于這個材質(zhì)網(wǎng)絡(luò)。
To see the shading network: In Hypershade, select the material node called eMicroscope and click on the Show Upstream Connections button.
要看材質(zhì)網(wǎng)絡(luò):在Hypershade里,選擇名叫eMicroscope的材質(zhì)節(jié)點(diǎn)并且點(diǎn)擊Show Upstream Connections 按鈕。
For more space in the Work Area, click on the Show Bottom Tabs button.
要得到更多的工作空間,擊Show Bottom Tabs 按鈕。
03電子攝像材質(zhì)節(jié)點(diǎn)是一個表面材質(zhì)。表面材質(zhì)是在MAYA里不同于其它材質(zhì)類型因?yàn)樗皇且粋€材質(zhì)模型。相反地,這是一個簡單地不用計(jì)算光或任何輸入屬性的數(shù)學(xué)合并的傳遞節(jié)點(diǎn)。它是設(shè)計(jì)為通過材質(zhì)引擎去任意轉(zhuǎn)換指定的輸入屬性到重新被認(rèn)可的屬性。作為一個結(jié)果,所有它的材質(zhì)屬性是通過插入的材質(zhì)網(wǎng)絡(luò)定義的,表面材質(zhì)渲染時不需要光,并且看來象自發(fā)光的表面如LED,LAVA,或NEON SIGN。表面材質(zhì)的外表幫助去完成一個電子顯微鏡下的圖像。
04在這個電子顯微鏡的顏色效果后面的概念是,在表面上的任何直接面向攝像機(jī)的點(diǎn)是在渲染時將渲染成黑色。當(dāng)表面逐漸與攝像機(jī)垂直時,顏色將逐漸地到淡藍(lán)。
一個容易完成這個效果的方式去是在MAYA里確定使用兩段信息:被著色點(diǎn)面對攝像機(jī)的方向和被著色點(diǎn)的表面法線;兩者都是向量。它們兩個的技術(shù)術(shù)語是Ray Direction 和 Normal Camera,并且它們在采樣信息節(jié)點(diǎn)里是不可見的。
一個采樣信息的功能節(jié)點(diǎn)是一個簡單地有一些特別地指定屬性的節(jié)點(diǎn)。屬性的指定參考MAYA已經(jīng)知道的,內(nèi)在的,當(dāng)對表面上的一個點(diǎn)著色時的信息。(如表面法線,切線,世界坐標(biāo)的定位等)在許多渲染器中,沒有一個程序的話它不可能得到這些信息。然而,MAYA的采樣信息功能節(jié)點(diǎn)準(zhǔn)備一個捷徑去訪問這個信息,它允許你在材質(zhì)網(wǎng)絡(luò)里創(chuàng)建一個定制的效果。通過簡單地連接一個采樣信息節(jié)點(diǎn)屬性到另一個節(jié)點(diǎn),MAYA知道在渲染時去傳遞需要的信息,它是通過那個連接的屬性所表現(xiàn)的。通常地,在采樣信息節(jié)點(diǎn)里的屬性將被用于精確地計(jì)算哪個屬性能在被著色點(diǎn)的最終外觀上起作用。
在這個電子顯微鏡網(wǎng)絡(luò)材質(zhì)里,Ray Direction 和Normal Camera是用于叫做數(shù)量積的一個數(shù)學(xué)計(jì)算。尋找那兩個向量的數(shù)量積結(jié)果在一個單一的向量將在1.0到-1.0之間。
1.0 when both vectors point in the same direction
兩個向量有同一個方向
0.0 when the vectors are perpendicular
兩個向量是垂直的
-1.0 when the vectors point in the opposite direction
兩個向量是相反的
因?yàn)榉奖?,MAYA實(shí)際在采樣節(jié)點(diǎn)里有一個屬性,事實(shí)上,這個數(shù)量積。這叫做Facing Ratio外形比率。連接外形比率屬性到BLEND COLOR功能節(jié)點(diǎn)的BLENDER屬性,在電子顯微鏡材質(zhì)里將創(chuàng)建在淡藍(lán)和黑色之間的插值。
這個工作的方式是:當(dāng)表面是面向攝像機(jī)時,那個BLENDER數(shù)值將傳遞給一個外形比率數(shù)值為1.0,并且這將告訴Blend Colors節(jié)點(diǎn)輸出COLOR1到材質(zhì)節(jié)點(diǎn)。表面遠(yuǎn)離攝像機(jī)時,外形比率將返回數(shù)值0。任何數(shù)值在0到1之間的,將輸出在COLOR1和COLOR2之間的數(shù)值。這是為什么你看到在球的外輪廓是淡藍(lán)色,在球的前方是黑色的,并且中間是兩個顏色的混合。這個材質(zhì)網(wǎng)絡(luò)指出這并證明為一個基本的概念。
實(shí)際的電子顯微鏡材質(zhì)為了合并一個凹凸效果,得用到一點(diǎn)高級的方法去完成同樣的效果。
05在電子顯微鏡下凹凸效果是使用一個Crater紋理完成的。Crater紋理的一個有趣的特性是它有一個內(nèi)建的outNormal輸出法線的輸出屬性。在這個例子里的展示,這允許Crater紋理不用一個BUMP節(jié)點(diǎn)來傳遞一個關(guān)于攪動的法線表面信息到材質(zhì)節(jié)點(diǎn)上。
Crater紋理的Shaker 和 Melt屬性控制邊緣質(zhì)量和擾亂的法線的分布或 "craters"。這個法線屬性Depth, Melt, Balance, and Frequency控制邊緣質(zhì)量,和擾亂法線的細(xì)節(jié)級別。
06電子顯微鏡材質(zhì)和上面的概念一起是在一個更高級的方式,因?yàn)椴蓸有畔⒐?jié)點(diǎn)的外形比率是不用于驅(qū)動Blend Colors節(jié)點(diǎn)的Blender屬性。
相反地,一個定制的外形比率是在材質(zhì)網(wǎng)絡(luò)里使用一個積向量功能節(jié)點(diǎn)來計(jì)算的。本質(zhì)上,這個方法是允許什么想當(dāng)作一個紋理節(jié)點(diǎn)能貼圖以外形比率。
這個概念是在數(shù)量積計(jì)算時,Crater紋理改變表面法線的方向。那么當(dāng)數(shù)量積是用于驅(qū)動在淡藍(lán)色Stucco紋理和黑色之間的插值時,一個凹凸貼圖效果就完成了。這個技術(shù)是當(dāng)材質(zhì)類型是一個表面材質(zhì)如這個電子顯微鏡,因?yàn)槟莾菏菦]有凹凸貼圖通道來通過傳統(tǒng)的方法去貼圖。這也能用在其它類型的材質(zhì)里。
On a technical level, here is what happens:在一個技術(shù)級別里,這兒是可能發(fā)生的。
The Vector Product node computes the Dot Product of two vectors.矢量積節(jié)點(diǎn)計(jì)算兩個向量的數(shù)量積。
The first vector is the Ray Direction provided by the Sampler Info node. This is the vector that points from the camera position to the point being shaded.
第一個向量是Ray Direction通過采樣信息節(jié)點(diǎn)提供的。這是從攝像機(jī)的位置到被著色點(diǎn)得到的向量。
The second vector is the outNormal from the Crater texture.
第二個向量是從Crater紋理得到的輸出的outNormal。
注意:那是一個在outNormal 和 Normal Camera間有重大的不同。Normal Camera在表面上的任何點(diǎn)直接遠(yuǎn)離表面的點(diǎn)的表面法線。outNormal是被修改的表面法線。方向的修改是依靠一個攪動的表面法線和基本的凹凸貼圖。
要看到不同,試著從CRATER的Normal Camera連接到 Vector Product節(jié)點(diǎn)的Input 2 屬性上并且你將看到凹凸效果消失。
07那兒有一個乘除功能節(jié)點(diǎn)插入在Sampler Info 和Vector Product 節(jié)點(diǎn)之間,它迄今為止沒有說明用處。
數(shù)學(xué)上,這個節(jié)點(diǎn)是必需的,因?yàn)镽ay Direction 和 outNormal 向量是相反的。作為一個結(jié)果,所有的被著色點(diǎn)將返回-1.0到0之間的數(shù)量積值。這將當(dāng)傳遞到Blend Colors節(jié)點(diǎn)上的 Blender屬性時不會正常工作,因?yàn)樗还ぷ髟跀?shù)值0到1范圍內(nèi)。要校正這個,Multiply Divide 乘除節(jié)點(diǎn)是用于乘以Ray Direction以-1數(shù)值以反轉(zhuǎn)它,或反轉(zhuǎn)它的方向。這保證兩個向量是指向同一個方向(在這個例子里遠(yuǎn)離攝像機(jī)),這樣保證數(shù)量積數(shù)值是在0到1范圍內(nèi)。
注意:缺省地,在Vector Product節(jié)點(diǎn)里的Normalize Output 是打開的。這樣產(chǎn)生了數(shù)量積在兩個向量之間的輸出是被返回當(dāng)作角的余弦。(意為值在-1到1之間)。然而,在這個例子里,兩個Ray Direction 和 outNormal已經(jīng)規(guī)格化了,于是數(shù)量積是已經(jīng)在-1到1的范圍內(nèi)。因?yàn)檫@個原因,Normalize Output標(biāo)記能被關(guān)閉去幫助最優(yōu)化速度不會產(chǎn)生任何不同到視覺效果。
注意:在這個例子里的采樣信息節(jié)點(diǎn)里的外形比率屬性,MAYA內(nèi)部的節(jié)點(diǎn)只返回數(shù)量積的絕對值。這意為它不返回負(fù)數(shù),即使Ray Direction被反轉(zhuǎn)。
一個數(shù)量積是單一的數(shù)值(相當(dāng)于一個三倍數(shù)如輸入向量),那意為Vector Product節(jié)點(diǎn)的outputX, outputY, 和 outputZ屬性將被設(shè)置成同樣的數(shù)。因?yàn)檫@個原因,任何他們輸出的一個能被連接到Blend Colors 節(jié)點(diǎn)里的Blender屬性。Blender只需要一個數(shù)值,所以在這個例子里,outputX自己將從Vector Product節(jié)點(diǎn)傳遞過來。
注意:在數(shù)量積節(jié)點(diǎn)的其它使用中,一個三位一體的數(shù)值也許在某個例子里是必須的,Output的復(fù)合屬性將被使用。