Maya模擬光線追蹤陰影的制作方法(4)
導(dǎo)言:
本教程為大家講解,使用Maya模擬光線追蹤陰影的制作方法,制作方法比較簡(jiǎn)單,非常實(shí)用,希望對(duì)大家有所幫助。
下面教程開(kāi)始
在用Maya默認(rèn)渲染器渲染投影的時(shí)候,我們可以設(shè)置兩種陰影類型,分別是Depth Map Shadow 和Raytrace Shadow,Raytrace Shadow 是基于真實(shí)的光學(xué)物理運(yùn)算得到的,但是計(jì)算速度很慢,Depth Map Shadow雖然渲染速度很快,但是不能很好的表現(xiàn)體積光源投射的陰影,比如一盞面光燈的陰影。
我們觀察這樣的陰影有其獨(dú)特的特性,即從物體和地面的接觸點(diǎn)開(kāi)始,陰影是由實(shí)到虛變化的,如下圖所示,我們可以看出兩種陰影的明顯區(qū)別。這個(gè)教學(xué)介紹一種可以用Depth Map Shadow方式來(lái)模擬真實(shí)陰影變化的方法。(圖01)
圖01
第一步
打開(kāi)場(chǎng)景,或者我們參考上圖制作一個(gè)相似的場(chǎng)景。分別在三個(gè)關(guān)鍵位置創(chuàng)建三個(gè)Locator,如圖命名為L(zhǎng)ightlocator、Startshadow和Endshadow,分別代表燈光的空間位置、陰影的開(kāi)始位置和陰影的結(jié)束位置。(圖02)
圖02
第二步
將三個(gè)Locator用鼠標(biāo)中鍵從Outliner窗口拖至Hypershade窗口中,同時(shí)創(chuàng)建兩個(gè)DistanceBetween節(jié)點(diǎn),如圖鏈接,以計(jì)算射燈和兩個(gè)Locator的距離值。(圖03)
圖03
第三步
繼續(xù)創(chuàng)建PlusMinusAverage和MultiplyDivide兩個(gè)節(jié)點(diǎn),利用PlusMinusAverage求上圖中1和2的差值。而MultiplyDivide節(jié)點(diǎn)則輸出數(shù)值提供給下一步的計(jì)算,連接方法如下圖所示,PlusMinusAverage的計(jì)算方式選擇為Subtract減法計(jì)算。 這樣我們可以計(jì)算出兩個(gè)距離差值。MultiplyDivide節(jié)點(diǎn)是為后面的計(jì)算作準(zhǔn)備。(圖04)
圖04
第四步
下面我們創(chuàng)建一個(gè)LightInfo節(jié)點(diǎn),鏈接方式如圖所示,通過(guò)這個(gè)節(jié)點(diǎn)的SampleDistance屬性我們可以得到主燈到被作用物體的采樣距離,這個(gè)值是一個(gè)隨著物體位置上采樣點(diǎn)不同而變化的值,同時(shí)再鏈接一個(gè)PlusMinusAverage節(jié)點(diǎn),為后面的計(jì)算做準(zhǔn)備。(圖05)
圖05
第五步
把這兩部分節(jié)點(diǎn)群鏈接如下圖所示。MultiplyDivide節(jié)點(diǎn)設(shè)置為Divide除法計(jì)算。這樣我們可以把Lightlocator到Endshadow和到Startshadow的距離差值,通過(guò)SampleDistance得到的燈光采樣距離進(jìn)行計(jì)算,由于SampleDistance是一個(gè)變量,所以這個(gè)比值也是一個(gè)變化的數(shù)值。(圖06)
圖06
第六步
創(chuàng)建兩個(gè)Remp節(jié)點(diǎn),通過(guò)上面得到的數(shù)值來(lái)控制燈光投影的屬性,鏈接方法如下,我們創(chuàng)建的Clamp節(jié)點(diǎn)的作用是截取了一段數(shù)據(jù),這段數(shù)據(jù)的范圍被設(shè)置成0到1,以此來(lái)控制Ramp節(jié)點(diǎn)的vCoord屬性。(圖07)
圖07
第七步
如圖調(diào)整Ramp的顏色分布來(lái)控制燈光的陰影深度分布和陰影的。(圖08)
圖08
第八步
通過(guò)參數(shù)調(diào)整得到比較好的測(cè)試結(jié)果,如下圖所示。(圖09)
圖09
此練習(xí)的基本原理是:用主燈和地面投影范圍起始結(jié)束點(diǎn)的距離差值與用LightInfo采樣得到的數(shù)值之間的比例關(guān)系,來(lái)控制陰影的分布。模擬出了類似Raytrace Shadow的效果,雖然節(jié)點(diǎn)有點(diǎn)復(fù)雜,但是渲染速度飛快。希望本教程能給大家?guī)?lái)幫助。
學(xué)習(xí) · 提示
相關(guān)教程