薛山
作為Blender最重要的新功能,幾何節(jié)點(diǎn)在動(dòng)畫(huà)設(shè)計(jì)中有著舉足輕重的作用,比如我們今天的主題,制作自動(dòng)覆蓋地面和物體的雪地效果:無(wú)論怎么移動(dòng)物體,“積雪”都能正確地覆蓋在物體上方,而被物體遮擋的“地面”則不會(huì)出現(xiàn)“積雪”。如果用傳統(tǒng)思維,則需要粒子系統(tǒng)、動(dòng)態(tài)繪畫(huà)等多項(xiàng)功能的同步操作,非常麻煩且效果不一定有保證,而通過(guò)幾何節(jié)點(diǎn)就能夠比較簡(jiǎn)單地完成。那么,具體要如何操作呢?
首先我們需要搭建“積雪”效果的對(duì)象,可以是樹(shù)林、房屋,也可以是你感興趣的任何物體,如圖1所示,我就做了一座簡(jiǎn)單的房子、一棵樹(shù)和一個(gè)平面,記得把這三個(gè)物體放到同一個(gè)集合里。
然后在剛剛搭建好的物體上方,新建一個(gè)平面,這個(gè)平面就是我們“積雪”的生成面。至此,咱們的建模環(huán)節(jié)就告一段落啦,如果你的模型選擇很簡(jiǎn)單的話(huà),這一步應(yīng)該幾分鐘就能搞定。
“積雪”的總體思路,是讓生成面形成“積雪”并向下投影,覆蓋到我們之前做好的房屋、樹(shù)木和地面上,所以,在幾何節(jié)點(diǎn)里,我們第一步就是要讓“積雪”的生成面有足夠多的頂點(diǎn),并讓它能夠向物體進(jìn)行投影。
首先,為“積雪”生成面添加幾何節(jié)點(diǎn),在編輯器里使用“細(xì)分網(wǎng)格”來(lái)讓它擁有充裕的頂點(diǎn),然后將我們的房屋、樹(shù)木、地面等目標(biāo)集合連接“實(shí)現(xiàn)實(shí)例”和“光線(xiàn)投射”,這就讓它們成為了“積雪”的投影目標(biāo),然后再利用“設(shè)置位置”,讓生成面能夠準(zhǔn)確投影到目標(biāo)上,具體設(shè)置可參考圖2。
顯然,這時(shí)候我們還只是得到了“積雪”生成面在物體上的投影,還需要進(jìn)一步設(shè)置才能獲得積雪效果,所以接下來(lái)我們需要使用“點(diǎn)到體積”和“體積到網(wǎng)格”,將生成面轉(zhuǎn)換為類(lèi)似積雪的網(wǎng)格效果。注意,到這一步的時(shí)候,“細(xì)分網(wǎng)格”“點(diǎn)到體積”和“體積到網(wǎng)格”的每項(xiàng)參數(shù)都會(huì)直接影響積雪的視覺(jué)效果,大家在設(shè)置時(shí)注意觀察,而且還要結(jié)合總體的頂點(diǎn)數(shù)量來(lái)判斷自己的電腦是否能承擔(dān)起高效渲染的任務(wù)。
然后我們需要連接一個(gè)“設(shè)置著色平滑”,就能得到如圖3那樣平滑的積雪效果了,而且可以看到,“積雪”受物體遮擋,并不會(huì)完全落到地面,這時(shí)候即便移動(dòng)物體,遮擋效果也會(huì)自動(dòng)變化,所以到這一步時(shí),我們就已經(jīng)基本實(shí)現(xiàn)了自動(dòng)化的積雪效果。
不過(guò),這時(shí)候的積雪看上去還是不那么真實(shí),原因在于它太平整了,我們還需要為它添加一些凹凸變化,才會(huì)在視覺(jué)效果上更具真實(shí)感。這時(shí)候我們就需要再次添加“設(shè)置位置”,這個(gè)節(jié)點(diǎn)在幾何節(jié)點(diǎn)功能里非常常用,基本上任何需要調(diào)整位置的需求,都可以通過(guò)它來(lái)完成。
此時(shí)我們需要使用噪波紋理,連接矢量計(jì)算的“相減”,數(shù)值0.5,讓噪波紋理的計(jì)算中心回到原點(diǎn),再連接矢量計(jì)算的“縮放”來(lái)控制影響幅度,這樣就能讓“積雪”呈現(xiàn)出凹凸不平的樣子了,最后再為各個(gè)物體添加材質(zhì),就能獲得如圖4的最終效果了。
本章所用幾何節(jié)點(diǎn)全覽
在這次的教程文件中,我們只需要在物體集合里加入新的物體,就能直接獲得積雪覆蓋的效果,所以從這個(gè)角度來(lái)看幾何節(jié)點(diǎn)算是一勞永逸的解決方案。不過(guò)你可能注意到,如果需要調(diào)整積雪生成面的尺寸,可能還得同步調(diào)整“地面”的尺寸,所以事實(shí)上這次的設(shè)計(jì)還有另外一個(gè)方法,可以實(shí)現(xiàn)這兩者同步調(diào)整,讀者朋友們感興趣的話(huà)可以給我們壹零社微信公眾號(hào)留言或私信,咱們?cè)谝院蟮奈恼吕镌俳又摹?/p>
2289501705397