Maya教程:在Maya中創(chuàng)建玻璃容器中的液體(4)
這是一篇關(guān)于材質(zhì)(shaders)(在Maya中創(chuàng)建玻璃容器中的液體)的教程,對于創(chuàng)建香水瓶(用于印刷設(shè)計),酒杯中的水,以及其它一些和玻璃、液體有關(guān)的東西(與MentalRay無關(guān))都有幫助。
好了,在開始本篇教程之前,你必須要知道以下幾點:
1.液體的反射是如何影響玻璃表面的。
2.玻璃的各個表面和液體/水之間的反射和折射。
3.環(huán)境的反射也影響了玻璃表面。
4.為什么倒角對于玻璃的制作很重要。
效果圖
1.液體的反射影響著玻璃的表面。
如果有一個光亮的玻璃瓶,里面盛著有色的液體或者水,那么它就一定包含著以下3個反射的區(qū)域。
-外表面反射
-內(nèi)表面反射
-內(nèi)部液體反射
這就意味著每個表面都有它自己的材質(zhì)。(圖1)
圖1
液體的顏色反射在玻璃瓶的內(nèi)外表面上,這些反射后的形狀叫做折射。當(dāng)光經(jīng)過水、玻璃、望遠鏡、塑料、放大鏡以及其它一些凸起的東西時,光線彎曲,就會產(chǎn)生折射。
2.玻璃的各個表面和液體/水之間的反射和折射。
水是對于光的反射很強(和玻璃一樣),同時光從玻璃表面到水時,也會發(fā)生反射和折射。(圖2)
圖2
3.環(huán)境的反射也影響了玻璃表面。
玻璃會反射周圍的物體。(圖3)
圖3
4.為什么倒角對于玻璃的制作很重要。
很重要的是,有倒角的玻璃會產(chǎn)生高光,因為倒角有凸起的表面,所以它會折射所有的反射光、環(huán)境光和光源射來的光。(圖4)
圖4
那么,我們要怎樣才能將這些應(yīng)用到Maya中去呢?
使用水/液體的材質(zhì)是很簡單的。先創(chuàng)建一個Phong材質(zhì),將顏色(Color)設(shè)為黑色,再將Transparency設(shè)成水/液體的原色(在這個例子里我使用橙色)。
將Cosine Power設(shè)到8-11之間,Cosine Power的設(shè)置取決于場景光,如果你用了很多光,那你就可以增加Cosine Power的值,使余弦值更小一些。
下一步,將Specular Color設(shè)為V=0.800左右(灰色),如果你想得到更有光澤的玻璃效果,就將它設(shè)成純白色。
下一步,將反射率(Reflectivity)設(shè)為0。(圖5)
圖5
下面進行光線追蹤的設(shè)置,這一步是很重要的,先打開Refractions復(fù)選框,將折射率(Refraction Index)設(shè)為1.2到1.4之間。那么?什么是折射率呢?它指的是光線經(jīng)過透明物體時彎曲的程度。
注意:當(dāng)Refraction Index為1時,意味著光線根本沒有發(fā)生彎曲。在[wiki]Maya[/wiki]中,普通材料的折射率如下:玻璃(1.6)、空氣(1)、水(1.333)、[wiki]水晶[/wiki](2)、鉆(2.417)。
下一步是將折射限定(Refraction Limit)設(shè)為10。10?為什么要設(shè)成10呢?因為這是允許光線發(fā)生折射次數(shù)的最大數(shù)值。舉一個例子,如果折射限定為10,就意味著,物體表面只能折射已被反射或折射(或者兩者都有)過9次或9次以下的光線,而對于已被反射或折射(或者兩者都有)過10次或10次以上的光線就不折射了。然而在大多數(shù)情況下,鏡子的折射限定至少是5,玻璃的至少是9。
好了,下面將反射限定(Reflection limit)設(shè)為5到6之間,那么,什么是反射限定?為什么要把它設(shè)為5到6之間呢?(圖6)
反射限定是允許光線發(fā)生反射的最大數(shù)值。例如,如果反射限定為4,也就是說,物體表面只能反射已被反射過3次或3次以下的光線,而對于已被反射過4次或4次以上的光線就不反射了。
圖6
主玻璃物體的材質(zhì)
好,現(xiàn)在我們就開始主玻璃物體的材質(zhì)的工作,我們需要用于透明的ramp,采樣工具(samplerInfo),用于反射的ramp,以及用于產(chǎn)生隨機反射圖案的貼圖。File是指帶有隨機圖案的TGA格式的文件。(圖7)
圖7
Ramp1的作用:從samplerInfo1獲得表面上與[wiki]攝影[/wiki]機[wiki]法[/wiki]線方向相對應(yīng)的每個點的facingRatio值(范圍是0至1之間),將此值與Ramp1(類型(Type)為V Ramp)vCoord相連接,這樣每個facingRatio值就對應(yīng)了一個Ramp1中的Selected Position值,通過調(diào)整Selected Position所對應(yīng)的顏色,就可以使每個表面上與攝影機法線方向相對應(yīng)的點有一個確定的顏色值。而Ramp1又與透明度相連接,所以,就可以通過調(diào)整Ramp1的Selected Position及其相對應(yīng)的顏色,來控制表面上與攝影機法線方向相對應(yīng)的每個點的透明度。(圖8)
圖8
假設(shè)表面上的某一點通過samplerInfo1的采樣得到了一個facingRatio值為0.003【這個點的法線應(yīng)該是與[wiki]攝影機[/wiki]的方向幾乎垂直(比如攝影機視圖中一個球體邊緣上的點)】,Ramp1中的Selected Position為0.005的位置的顏色是R 0.137/G 0.137/B 0.137,而0.005以下的位置其顏色均為R 0.137/G 0.137/B 0.137,所以表面上這個點的透明度為R 0.137/G 0.137/B 0.137。以此類推,表面上facingRatio值越大的點(即法線與攝影機方向越接近平行的點),其透明度越接近白色。當(dāng)點的facingRatio值大于等于0.61后,其透明度就為白色(因為上圖的白色的標(biāo)記點的Selected Position為0.61)。
place2dTexture與Ramp1相連接,為最終的透明度(transparency)過濾表面的UV方向。
Ramp2 的作用:同Ramp1類似,只是連接到材質(zhì)的反射率上。
EnvChrome1的作用:用來給Blinn材質(zhì)反射增加格狀反射環(huán)境,如果你愿意,你也可以使用EnvShpere。
注意:如果你想得到更柔和反光,你也可以使用Phong,在這個例子里,我使用了有尖銳反射的Blinn。
反射體的材質(zhì)
下一步,我們需要一個主玻璃材質(zhì)的副本來為內(nèi)反射面新建一個材質(zhì),對于這個內(nèi)表面反射體的材質(zhì),你可以將Specular Color上連接的貼圖節(jié)點(file3)斷開,用一個單獨的顏色替代(在這里我使用了亮橙色)。(圖9)
圖9
這樣我們就有了3個材質(zhì):主玻璃材質(zhì),內(nèi)反射面材質(zhì)和液體材質(zhì)。
好了,正如我在教程一開始就說的,這個盛著有色液體或者水的光亮的玻璃瓶包括3個反射區(qū)域,因此建模時也就包括3個表面:
紫色=外表面
白色=內(nèi)表面為
綠色=液體表面
重要的是:要在物體的屬性編輯器中的Render Stats項里將玻璃內(nèi)表面和水表面的Cast Shadows和Receive Shadows關(guān)掉,因為它們只會接收或產(chǎn)生反射和折射。(圖10)
圖10
小技巧:
1.在給玻璃瓶和液體建模時,可以復(fù)制一份主玻璃物體,并使用Isoparm(分離(Detach)表面)來創(chuàng)建液體,然后使用Planar制作液體的上表面。
2.你可以使用Layered Shader或者單獨的透明材質(zhì)來制作香水標(biāo)志。
3.在玻璃瓶的周圍放置更多東西以增強反射和折射效果。
現(xiàn)在指定材質(zhì)
外表面使用主玻璃材質(zhì)
內(nèi)表面使用反射體材質(zhì)
液體/水表面使用液體材質(zhì)
最后在渲染之前檢查一下:確保在Render Globals中打開Raytracing模式,然后將Quality設(shè)置為Production Quality。(圖11)
圖11
學(xué)習(xí) · 提示
相關(guān)教程