這篇教程教武林網的朋友們用MAYA模擬光線追蹤陰影,教程難度不大,屬于比較基礎的燈光教程。轉發過來和武林網的朋友們一起學習了,先來看看最終的效果圖:
在用Maya默認渲染器渲染投影的時候,我們可以設置兩種陰影類型,分別是Depth Map Shadow 和Raytrace Shadow,Raytrace Shadow 是基于真實的光學物理運算得到的,但是計算速度很慢,Depth Map Shadow雖然渲染速度很快,但是不能很好的表現體積光源投射的陰影,比如一盞面光燈的陰影。
我們觀察這樣的陰影有其獨特的特性,即從物體和地面的接觸點開始,陰影是由實到虛變化的,如下圖所示,我們可以看出兩種陰影的明顯區別。這個教學介紹一種可以用Depth Map Shadow方式來模擬真實陰影變化的方法。(圖01)
圖01
第一步
打開場景,或者我們參考上圖制作一個相似的場景。分別在三個關鍵位置創建三個Locator,如圖命名為Lightlocator、Startshadow和Endshadow,分別代表燈光的空間位置、陰影的開始位置和陰影的結束位置。(圖02)
圖02
第二步
將三個Locator用鼠標中鍵從Outliner窗口拖至Hypershade窗口中,同時創建兩個DistanceBetween節點,如圖鏈接,以計算射燈和兩個Locator的距離值。(圖03)
圖03
第三步
繼續創建PlusMinusAverage和MultiplyDivide兩個節點,利用PlusMinusAverage求上圖中1和2的差值。而MultiplyDivide節點則輸出數值提供給下一步的計算,連接方法如下圖所示,PlusMinusAverage的計算方式選擇為Subtract減法計算。 這樣我們可以計算出兩個距離差值。MultiplyDivide節點是為后面的計算作準備。(圖04)
圖04
第四步
下面我們創建一個LightInfo節點,鏈接方式如圖所示,通過這個節點的SampleDistance屬性我們可以得到主燈到被作用物體的采樣距離,這個值是一個隨著物體位置上采樣點不同而變化的值,同時再鏈接一個PlusMinusAverage節點,為后面的計算做準備。(圖05)
圖05
第五步
把這兩部分節點群鏈接如下圖所示。MultiplyDivide節點設置為Divide除法計算。這樣我們可以把Lightlocator到Endshadow和到Startshadow的距離差值,通過SampleDistance得到的燈光采樣距離進行計算,由于SampleDistance是一個變量,所以這個比值也是一個變化的數值。(圖06)
圖06
第六步
創建兩個Remp節點,通過上面得到的數值來控制燈光投影的屬性,鏈接方法如下,我們創建的Clamp節點的作用是截取了一段數據,這段數據的范圍被設置成0到1,以此來控制Ramp節點的vCoord屬性。(圖07)
圖07
第七步
如圖調整Ramp的顏色分布來控制燈光的陰影深度分布和陰影的。(圖08)
圖08
第八步
通過參數調整得到比較好的測試結果,如下圖所示。(圖09)
圖09
此練習的基本原理是:用主燈和地面投影范圍起始結束點的距離差值與用LightInfo采樣得到的數值之間的比例關系,來控制陰影的分布。模擬出了類似Raytrace Shadow的效果,雖然節點有點復雜,但是渲染速度飛快。希望本教程能給大家帶來幫助。
教程結束,以上就是MAYA模擬光線追蹤陰影方法介紹,操作很簡單的,希望能對大家有所幫助!
新聞熱點
疑難解答