磨損做舊效果一直是製作銅像、石雕等真實感3D效果不可缺少的因素。我們先看幾張現實中的照片,並分析一下他們的特點。這對我們下麵的製作會有所幫助。
這是一張非常典型的具有磨損效果的銅製器具的照片。(圖01)
圖01
同樣是一張表現具有磨損效果的石柱照片。(圖02)
圖02
這尊佛像同樣是磨損效果的典型範例。(圖03)
圖03
從以上三張照片我們不難發現所謂磨損效果的特點。觀察一下他們的表麵,凡是突起的部分,都因手的長期摩擦而顯得異常光亮,而一些內凹的轉折拐角兒處,由於平時手很難觸及得到,或有一些髒物無法清除,顏色顯得較深(或顏色跟本不同),質地也較粗糟。
如果是在Max中,事情可能會變得相對簡單,因為Max有專門針對這種效果的外掛插件。但Maya中,沒有直接提供這樣的功能,也沒有有針對性的插件可以用。網上曾經看到過一個關於這方麵問題的討論,但討論是基於Renderman展開的,做為一般的3D製作人員來說,Renderman是極難掌握的。
我曾經多次在網上的一些論壇提過是否可以通過Maya自身的節點連接製作這種效果的問題,但始終沒有得到滿意的答案。看來除非編程,否則用Maya自身的材質節點網似乎很難辦到。
想來想去,通過手工繪製帖圖來模擬成為唯一的手段了。但是這種帖圖繪製起來將會是非常麻煩的,尤其對那些非常複雜的模型來說(比如像有豐富細節的雕塑等等)。既然手工繪製帖圖成為唯一的手段,那麼,我們現在思考的重心就是:能否通過什麼方法來加速這個繪製帖圖的過程呢,如果能讓 Maya幫我們自動完成一些什麼的話…那就好了。
偶然間我想到了GI,大家可能會說,這和GI有什麼關係。嗬嗬~~~是啊,表麵上沒什麼關係。但仔細想想,他們在效果上是不是感覺有某種程度的類似呢?我們想象一下,假如上麵的佛像是一個3D模型,並用GI將它渲染出來。是否也會是像我們前麵所講的"佛像的突起部分會比較亮,而一些內凹的轉折拐角兒處,會比較暗呢!(網上類似的素模GI渲染圖很多,大家可以找些來觀察一下)"喔~好像是差不多…
既然是這樣,那麼我們隻要將GI對模型的光照效果記錄成為一張帖圖,那麼這張帖圖上保留的不正是我們想要的東西嗎!那麼,思路就理出來了:通過將GI效果烘培成帖圖來代替手工繪製的帖圖。當然,這樣生成的可能還不算太精確(畢竟G和磨損完全是兩回事,盡管他們效果上類似),所以帖圖還需要經過Photoshop或DEEP paint 3D進一步修繕才能得到較好的效果。但即便如此,這也將大大的加速製作過程。
第一步
首先,我從模型庫中找到一個雅典娜神像的多邊形模型做為演示模型。將模型導入Maya,並為其賦予一個Lambert材質。(如圖04)
圖04
第二步
GI效果,我用了GI_Joe這個插件來模擬。可能很多朋友都用過這個Maya的插件,他通過在場景中建立燈光陣列來模擬GI效果,出來的效果很不錯,速度也較快。GI_Joe建立的燈光陣列是由兩組組成的(SkyLight和GroundLight)。按下圖方式設置,建立為16/16的燈光陣列。(圖05)
圖05
[page]
第三步
陣列建立好後,先按默認參數設置渲染,看一下效果。(如圖06)
圖06
第四步
我們發現,在默認參數下渲染的效果很不滿意,光線太暗,GI效果也不強烈。試著調節GI_Joe的相關參數,以達到比較滿意的效果。如圖07所示,對於修改過的參數,我用不同的顏色分別進行了標記。下麵分別說明一下這些參數的含義。(注意:如上麵所述,GI_Joe的燈光陣列是由兩組組成的。所以圖07中的每種參數也各有兩個。)(圖07)
圖07
紅框參數:這是SkyLight和GroundLight的燈光顏色屬性,默認狀態為一個偏藍,一個偏黃。由於我們隻是想利用他們的亮度信息,所以這裏將這兩個顏色屬性都改為純白色。
綠框參數:這個參數控製燈光陣列的亮度,如前麵(圖06)所示,默認的渲染效果太暗,所以這裏我們加大這個參數值。(圖中統一設置為了0.25)
藍框參數:這個參數是打開燈光陣列的陰影,默認狀態GroundLight的陰影是關閉的,這裏把他們都設置為On狀態。
黃色參數:陰影顏色。默認為黑色,這裏我們將其值調到-0.4左右。以使暗部的效果更暗,來增強其效果。(注意:由於顏色亮度為負值,所以菜單窗口中顯示為不準確的灰色)
紫色參數:這是深度貼圖陰影的尺寸值。增加它可以強化明暗的變化。這裏將其值由默認的128提升至512(注意,加大此值會使渲染速度變慢)
修改完成後,再次渲染。(圖07)中右側為新的渲染圖。效果已經比默認狀態好了很多,基本上能滿足要求了。
第五步
在烘培貼圖之前,我們還要把模型的貼圖坐標完全展開。這個應該很容易理解了,因為如果坐標有重疊,則無法烘培出正確的貼圖。為了簡單起見,可以使用Edit Polygons--->Texture--->Automatic Mapping將貼圖坐標自動展開。如(圖08)
圖08
第六步
坐標展開後,開始烘培貼圖(所謂烘培貼圖就是把模型受的光照及陰影的影響都記錄到一張貼圖上),相信在遊戲製作過程中經常會用到類似的功能。方法如下圖所示,打開Maya的Hypershade窗口,同時選中模型和模型的材質球,選擇Hypershade窗口Edit菜單下的Convert to File Texture(Maya Software)右側的小方塊兒,打開烘培貼圖的設置麵板。(圖09)
圖09
[page]
第七步
打開“Bake Shading Group Lighting"和"Bake Shadows"以使生成的貼圖記錄下光照和陰影的信息。X Resolution和Y Resolution用來設置生成貼圖的尺寸,這裏設置得大一些,1600*1600,文件格式設成TGA(也可自定),參數設置好後,點Convert鈕。(圖10)
圖10
經過一段時間的計算,Maya會在當前的工程目錄中生成一個圖像文件。通過觀察可能會覺得某些方麵還並不十分滿意,我們可以在Photoshop中將它打開,進行一些編輯,比如調整亮度、對比度等等。(圖11)
圖11
第八步
注意此時場景中模型的材質已經因執行了"Convert to File Texture(Maya Software)"而變成了"Surface Shader"類型材質。刪除這個材質,並重新建立一個默認的Lambert材質賦給模型。將剛才生成並經過Photoshop處理過的圖片帖到 Lambert材質的Incandescence屬性上(注意:帖圖的Filter Typer類型應該改為OFF,否則渲染出來可能會產生比較嚴重的類似裂痕的效果,這是由於帖圖坐標比較碎,導致坐標與坐標的邊界處產生的接縫),並將Color屬性調成黑色。(圖12)
圖12
第九步
刪除GI_Joe生成的燈光陣列,因為光照信息已經被保存在帖圖上了,此時我們已經不需要它。用默認燈光渲染一張看一下。效果如圖13,看一下渲染效果,基本滿意。但做為磨損效果,畢竟和GI效果是不完全相同的,所以一些局部不合理的地方還需要修改,另外,可能有時候還是會有少量的前麵提到的接縫存在,這時都可以借助像DEEP paint 3D這樣的軟件來做更細致的修複。(圖13)
圖13
[page]
第十步
進行到這裏。最重要的也是最繁瑣的事已經完成了,剩下的就是利用這張圖來製作各種不同質感的磨損效果了。(這張圖其實通常是做為蒙板用),比如建立一個多層材質或多層帖圖,用生成的這張圖做為通道蒙板,這樣不同的區域就有不同的材質效果。簡單起見以平麵圖為例說明一下。(圖14)
圖14
下麵是我調的金屬效果,最左邊的圖是沒有加入磨損效果的,我們發現他顯得很不真實;中間的加入了磨損效果,效果就好多了;最右邊的又加入了環境反射,這使渲染效果顯得更加豐滿了。(圖15)
圖15
最後給出這個金屬材質的節點網,這裏就不做過多介紹了。(圖16)
圖16