當前位置:首頁 >教程首頁 > Mental Ray >利用Maya基礎材質製作玻璃效果

利用Maya基礎材質製作玻璃效果

發布時間:2018-11-17 19:57:24

導言:大家好,我是戴巍。今天和大家分享的是如何利用Maya基本材質和Mental ray材質實現玻璃效果的教程,希望對大家有所幫助。

(本文部分圖片可右存或複製鏈接看大圖)

本文導讀

材質的基本原理

使用Maya基本材質實現玻璃效果

使用Mental ray材質實現玻璃效果

玻璃的陰影以及焦散

材質的基本原理

能量守恒

在光線照射到某個物體表麵的時候,總體上會出現三種反應:吸收,反射以及折射。其中反射又分為漫反射和鏡麵反射。

而所謂的能量守恒法則說的則是,能量不可能憑空產生也不可能憑空消失,隻可能發生轉換。

用在光線傳播過程中則可以得到這樣一個公式:入射能量=吸收能量+反射能量+折射能量。其中,吸收的能量一般轉換為熱能,是我們不需要考慮的部分,將這一部分掠去,得到公式:入射能量>=反射能量+折射能量。其中,反射能量可以分為漫反射和鏡麵反射,而漫反射在我們cg製作過程中,一般為diffuse,而鏡麵反射一般為specular,而折射一般為refraction。令入射能量為100%,即為1,則可以得到最終我們可以使用的公式:1>=diffuse+specular+refraction。

所有反射都具有菲涅爾效應

這裏直接引用下Mental ray官方幫助文檔的圖。菲涅爾就是你的視線和你看的麵的夾角越垂直,則看到的反射越低;你的視線與你看的麵的夾角越接近0度,反射越高。

另外,決定菲涅爾效應的主要是折射率這個屬性。當折射率越靠近1的時候,90度視角與0度視角的反射率之間的差別越大,當折射率數值越高的時候,90度視角與0度視角的反射率越接近1。

一般透明物體的折射率在1.3-1.9之間,塑料、橡膠、烤漆也是這個範圍左右。金屬則是4-10,甚至更高。

 

使用maya基本材質實現玻璃效果

這裏使用大家最熟悉的blinn材質,運用前麵講的基本原理來製作玻璃。

首先是設置場景,對於高反射的金屬或者玻璃等物體來說,基本上可以說不存在自身的固有色,這些物體之所以被看見,是因為反射或者折射周圍的環境,這時環境對於玻璃的製作來說是萬分重要的,沒有環境就沒有效果。

這個場景使用HDR來進行照明,在Mental ray中則使用IBL節點。

關鍵設置如下:

開啟IBL節點,如果FG沒有自動開啟,請手動開啟。 

關閉場景的默認燈光,在common標簽的最後。

啟用色彩管理,如下設置,開啟線性工作流。

渲染得到的結果如下。

 

給模型一個blinn材質,調節transparency到全透明。在raytracing option標簽下開啟折射refraction,將折射率調節到1.7或者類似的一個數值,得到下圖這樣的結果。

這是因為反射折射次數在默認情況下都設置得非常小。為了講解反射和折射次數,我做了一個簡單的場景來說明。

兩麵相對的鏡子,中間有個小球。鏡子給的是高反射的材質。

按照我們的生活經驗,兩麵相向而立的鏡子應該是無限次反射才對。但是在軟件渲染出來的圖中卻看到,從一麵鏡子裏麵隻能看到對麵的鏡子和小球,對麵鏡子裏的反射是沒有的,反觀另一麵鏡子也不會有反射。其實這兩麵鏡子我給了同樣的材質,那問題在哪裏呢,就在反射與折射次數的限製。

當我們在渲染的時候,如果遇到像我現在使用的這個案例,計算機要是按照生活裏的經驗去計算,那麼就要無限地計算兩麵鏡子之間的反射,渲染便永遠不會終止。為了避免這種情況的產生,軟件中引入了反射與折射次數限製來提高性能。這個限製是由兩部分構成的:全局設置以及單個材質的設置。當你打開Mental ray的quality標簽,下麵有個raytracing、reflection和refraction的值則分別對應會計算的反射和折射次數,而max trace depth則是這兩個值相加的最大限製。比如兩個值都設為10,但是max trace depth也設為10,那麼折射和反射次數則不會達到20,而是不會超過10。

在高反射的場景裏,一般會設置為10,10,20。但是渲染了以後,你會發現結果沒有變化,那是因為雖然你把全局設置改變了,但單個材質下麵也是有限製的。

#p#e#

找到這個blinn球的raytrace option,下麵有一個reflection limit,這個也是反射次數限製。下圖分別為大家演示了reflectionlimit值為0,1,2,3,4,5時的結果,你會發現這個數值設為幾,那麼反射就會進行幾次。

 

 

折射也是一樣的道理,折射一般要9次以上,而blinn材質的折射次數,默認就是9次。反射也要有3-5次左右,將場景裏所有的反射折射次數都調高吧。記得當你調高這些數值的時候,渲染時間也會隨之而大幅度增加。回頭看那張玻璃杯的圖,調節了反射折射次數以後的結果是,黑的地方消失了,不過反射折射還不好看。

要怎麼補救呢?首先根據開篇說的能量守恒法則1>=diffuse+specular+refraction,對於玻璃物體來說,是不存在漫反射的,有的都是鏡麵反射和折射。所以,先把color或者diffuse關掉,調成0,或者關掉。其次,玻璃是一個遵循菲涅爾反射的高反射物體。我們把反射率和specular color調到最高。在blinn材質中對於反射的控製是reflectivity和specular color共同控製的,隻有二者皆為1的時候,才是全反射,任意一個值不為1,都會相應降低反射率,任意一個值為0,則反射率就是0。

然後將specular roll off調節為0或者接近0。絕大多數人理解這個值為高光強度,這個理解是有偏頗的。這個值真正的作用其實是控製菲涅爾效應的。當該值為1的時候,90度視角與0度視角的反射率皆為specular color與reflection的乘積(90度視角與0度視角參見菲涅爾反射;乘積的原因是這兩個數值共同控製真正的折射率);當該值為0時,0度視角的反射率為specular color與reflectivity的乘積,而90度視角的反射率為0。

所以,這個值可以取代sampler info與ramp節點來實現對菲涅爾的控製。(不相信的同學可以自己弄一個圓球,把這個值調到0,你會發現球體的邊緣照樣有反射,並且越靠近你的垂直視線,反射越低。)

上圖是將specular roll off調節到0所得到的渲染結果,即有了菲涅爾反射的結果。你會發現杯子正垂直於你視線的麵上的反射幾乎已經看不到了,而同你的視線夾角非常小的麵,依然有著很高的反射。

另外,在我這個案例中eccentricity這個值不產生作用。一般來說,這個值被翻譯成偏心率,控製的是高光的大小。但是這裏所謂的高光,其實是三維軟件虛擬出來的一個東西,因為你用了虛假的燈光,虛假的燈光照射在虛假的材質上麵,會形成虛假的高光。但是你要按照我說的一步步地做,你會發現這時候調整這個數值不起任何改變。

這是因為我沒有使用虛假燈光,這個場景裏唯一的默認燈光在開始時已經被我關閉了,並且沒有新建任何燈光,起到照明作用的是一張hdr貼圖,以及FG的計算。所有玻璃上能看到的高亮部分,並不是計算機通過虛假燈光位置計算出來的所謂高光,而是根據光線跟蹤計算出來的真正的反射。這一部分我沒辦法更深入地說明了,這不是這篇教程裏想要解決的問題,隻是附帶提一下,如果想不明白也不要深究,很多人都不知道這些但依然做出很棒的作品,條條大道通羅馬嘛。

 

回到玻璃的製作。我們已經製作出菲涅爾現象,這個時候卻有個問題,這個材質並不遵循能量守恒:我的blinn的transparency全是1,在90度視角的麵上,反射是0,而在0度視角上反射是1。於是,在接近視角為0的麵上,會有1的反射同時有1的折射,打破了能量守恒,也就是說反射與折射的光線反而要比入射的光線強烈,會得到不正確的視覺。

我用一個方法來糾正不同視角的折射能量,也就是透明度。這裏使用sampler info加ramp的經典方法。

如上圖,將sampler info的facingRatio插入ramp的vCoord。設置ramp一端為白一端為黑。將這個ramp插入一個lambert給杯子渲染一下,你就知道這一套節點起什麼作用了。

可以看出,杯子的邊緣,也就是接近0度視角的地方是黑的;接近中心,也就是接近90度視角的地方是白的。也就是說,這套節點可以控製不同視角的地方獲得不同的值。

現在的反射值是在0度視角也就是邊緣的地方比較強,而90度視角,也就是中間地方很弱。為了滿足能量守恒,得插入一個相反的結果到transparency通道中去,也就是讓越靠近邊緣的地方,透明度越低,而越靠近中心的地方,透明度越高。

剛才做的這套節點剛好合適,插入到之前blinn材質的transparency通道中去。

得到的結果,感覺太黑了點,這個時候可以控製一下ramp上的顏色來調節到可以接受的結果。有人可能會說,如果這個時候調ramp上的黑白顏色,那麼不是打破了能量守恒了嗎?其實你用blinn材質做玻璃,根本無法精確控製能量守恒,可能你能讓標準的90度視角與0度視角獲得正確的結果,但中間過渡的環節你並不知道過渡到底該是線性的還是曲線的還是咋樣的。其實菲涅爾現象的數值變化本身就很複雜,即不是線性,也不符合單一曲線,最精確的控製方法是輸入折射率來控製菲涅爾,前文已經提到菲涅爾現象最主要是受到折射率的控製,這是一種物理屬性。而在Maya自帶的簡單blinn模型中,是無法實現用折射率精確控製菲涅爾現象的,更精確的方法將在後文提到。

順便說一下,Maya的blinn材質給人的感覺挺奇怪,尤其是反射是由specular color與refectivity兩個數值共同控製,我覺得這些特性早就應該淘汰了。新版本的Maya從來不更新這些過時的東西,導致Maya這個軟件已經顯得有點尾大不掉,學習起來會相對困難一些。

 

回到做玻璃上來,原因我已經說明白了,所以這裏,我們不得不做一次所謂的藝術家,讓結果看起來“正確”。

你可能注意到,這個結果的杯底特別的黑。這是因為我采用的照明方式是IBL,主要靠的是FG的光子。而FG的光子也是有反射和折射次數的。

如圖打開FG的反射折射次數限製,調高一點點,使光子可以穿透杯壁照亮杯底的地麵。

 

得到結果如下圖。

最後,增加了地麵紋理,加強HDR的強度,加強照明,細微調節材質屬性,得到下麵這個純blinn材質的玻璃。

也可以在插入transparency的ramp上麵添加一些顏色來製作有色玻璃,但你不要太期待結果。還可以給玻璃增加一點折射模糊,讓CG味少一點。

 

折射模糊請選擇材質的Mental ray標簽下的Mi Refraction Blur,limit是折射模糊的次數,rays是精度。

調高blur,製造毛玻璃的效果。當然這個屬性會讓渲染速度大大減緩,請慎重使用。

還可以在bump裏連入貼圖,讓玻璃看起來不那麼規則。

 

使用Mental ray材質製作玻璃

Mental ray的建築材質有很多優勢,相對於blinn來說有一個巨大的優化就是——內置能量守恒。這是一條強硬的規則讓你無法打破它,即使你的設置是有問題的,但得到的結果仍舊是一個強製得到的正確結果,和你的設置其實是不同的。當你給材質一個顏色,然後不斷調節它的反射率你就明白了。

Mia材質的設置主要是讓0度視角與90度視角的反射率都為1,即不產生菲涅爾反射,默認mia是有菲涅爾反射的。再給一個純紅的顏色,並且把反射率給為0。之後的圖都是在不改變diffuse的前提下,隻調節反射率的值得到的。以下分別是Reflectivity=0,0.3,0.6和1時的效果。

 

簡單來說,當你把mia材質的反射開到1,並且關閉了菲涅爾反射的時候,你的diffuse顏色就沒用了。想象一下吧,反射為1的材質是啥樣的?其實就是鏡子,完美反射周圍的環境而沒有自己。這個時候,不論你給它黃色藍色綠色,都隻能看到周圍的環境而看不到自己的固有色。

但是Maya的基本材質是沒有這個功能的,你可以自己動手做試驗,Maya材質diffuse和refection得到的結果會向上疊加,最終會超過極限得到過曝的結果,這就是很多人用Maya的基本材質做東西總覺得很假的原因之一。

而且mia材質還有這樣一個特點,就是折射覆蓋反射覆蓋漫反射。像上麵的渲染圖,在漫反射固定的情況下,反射屬性越高,漫反射效果會自動降低,到反射為1的時候甚至直接就沒有漫反射了,所以說反射覆蓋漫反射效果。折射也有同樣的效果,開得越高,則反射效果以及漫反射效果都會越低,就算你給的反射值是1,也會隨著折射的強度提高而不斷降低。

這就是mia材質的強製能量守恒,讓你無法得到不正確的結果。

 

好的,這些是mia材質的一點點基本知識,我們再回到製作玻璃上來。首先還是關閉漫反射。然後將reflectivity即反射調為1,折射率調為1.7,transparency調為1,即全透明,打開brdf卷閘欄,勾選use fresnel reflection,這個選項會讓折射率來控製菲涅爾反射,前文已經闡述過。不用擔心反射和折射之間的能量守恒,mia材質會自動為你處理,這時這個材質就算設置好了。得到的結果如下,非常快速而且效果很棒。

另外,你可能一直注意到,玻璃內壁似乎挺明顯的樣子,Maya基本材質對這個問題是沒辦法的。但是對於mia材質,你可以把advanced reflection卷閘欄下的skip reflection on inside的勾給去掉,會得到內壁不那麼清晰的結果。

這個選項勾選的意思是忽略內壁反射,取消勾選的意思是計算內壁反射。意思就是,不光計算法線朝上的那一麵的反射,還要計算麵的另一邊的反射。其實我一直在想這個是不是搞反了,但後來發現這個可能和一個叫做TIR(total internal reflection)的東西有關。這個我個人還沒完全弄明白,但我們仍然可以通過這個方法得到不錯的效果。

Mental ray材質做玻璃還有個要在意的地方就是玻璃顏色,這有點像vray的霧顏色。在mia材質中,主要是使用advanced refraction卷閘欄下的屬性來操控顏色。

勾選上use max distance和use color at max distance。Use color at max distance的顏色設置可以理解為你要設置的玻璃的顏色,max distance下麵的數值則是說,光線進入介質開始,傳播了多遠的距離會變成你選中的顏色。你可以根據場景的大小來設置這個數值。Maya默認的單位是cm,每一個單元格就是一厘米,如果你自己沒有亂調的話。你可以估算一下你的杯壁大約是多厚,大概傳播多遠的距離變成你要的顏色比較好。

總的來說,max distance越大,則玻璃顏色越淡,max distance越小,則玻璃顏色越深,這個是很容易理解的。而且,你會發現使用advanced refraction下麵的屬性來控製玻璃顏色比你直接用transparency直接控製顏色的優勢:顏色並不是均勻地分布在玻璃的每一寸表麵上,而是越厚的地方,顏色越深,越薄的地方顏色越淺,這都得益於max distance。

最後我們得到了下麵這種效果,很微妙的玻璃顏色。

關於mia材質設置反射模糊或者折射模糊的方法在這裏就不再贅述了,有很多地方可以查到資料。

 

玻璃的陰影以及焦散

關於玻璃的陰影首先第一點要明確的是:玻璃的陰影是實心不透明的!這是客觀世界的真實結果。而軟件裏把玻璃陰影調成半透明的做法,其實是一種接近真實的欺詐,但絕對談不上真實,真正的玻璃陰影其實是實心的陰影加上焦散。

 

先說blinn材質,我個人是不知道如何讓它的陰影變成實心,似乎隻要是給它開了透明,它的陰影就開始變得透明起來,並且有個數值可以調整這個陰影的透明程度。

在raytracing options下麵的shadow attenuation,值越小,陰影越透明,值越大,陰影越不透明。有一點十分值得注意的是,這個數值默認是0.5,會造成透明貼圖的陰影並不透明。把這個數值調為0,或者把quality標簽下的shadow method 改成segments就可以解決這個問題。相信有人被這個問題困擾過。

另外,你不要去關注上麵兩個屬性light absorbance和surface thikness,這兩個數值意思是燈光吸收量和表麵厚度,隻有在software渲染器裏才能好好工作。就算好好工作效果也很不好,以下各圖分別是shadow attenuation=0,0.5和1時的效果。

一般用blinn材質的話,能得到的陰影效果大體就是這種程度的。你會發現能夠在陰影上看到明顯的杯壁,這時你可以給燈光的陰影加一點點模糊來遮蔽這些視覺效果(這裏的所有圖已經給了陰影一點點的模糊,如果不給的話會非常非常硬),基本上得到的效果還是可以接受的。特別是當光源很散,陰影並不像這個例子裏直接用聚光燈打出來的話,很可能根本就看不出來效果來。在之前的例子裏一直是看不到陰影的,因為光源來自四麵八方,陰影並不明確。

 

現在我們回到mia材質上來。它當然也可以使用類似於blinn的這種陰影計算方式,特別需要注意的一點是,當你使用這種簡單的陰影計算方法,並且使用了max distance時,你的shadow method必須為segments才能得到正確的陰影效果。下圖分別是Shadow method=simple和segments時的效果。

雖然在這個例子中區別非常微妙。但是在某些複雜的相互交錯的場景中會有致命的差別。我暫時舉不出特別好的例子,隻是建議大家盡量使用segaments陰影模式。

 

現在說明真正貼近自然的玻璃陰影製作方法,首先是使用mia材質,然後注意advanced refraction卷閘欄下麵的refractive caustic與transparent shadow兩個選項。默認是勾選後者的,就是簡單的透明陰影,而我們想要使用焦散陰影,於是勾選前者。Caustic就是焦散了。

這個時候你渲染還看不到任何區別。隻有當你勾選上渲染心裏的caustic以及燈光上的發射光子,才會有效果。

實心的陰影已經出現了,並且有一些微弱的焦散效果,對光子等等進行一係列調節,來加強焦散效果。

好的,這樣就得到了不錯的焦散效果。由於模型本身的限製,焦散的形狀並不是特別好看,大家可以拿更好的模型來做做看。焦散的調節是很簡單的,教程也好找,我就不說了。

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答

微信掃碼入群領福利

掃碼領福利最新AI資訊

點擊谘詢
添加老師微信,馬上領取免費課程資源

1. 打開微信掃一掃,掃描左側二維碼

2. 添加老師微信,馬上領取免費課程資源

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定