薛山
一般情況下我們想要在Blender里鋪設(shè)一條鵝卵石道路,你會(huì)怎么構(gòu)思呢?是不是先做幾顆鵝卵石,然后再做地面,然后利用粒子系統(tǒng)讓石頭作為毛發(fā)?這個(gè)方法雖然理論上可行,但存在幾個(gè)問題,第一是粒子系統(tǒng)有比較嚴(yán)重的實(shí)例重疊,也就是石頭與石頭之間會(huì)存在穿模問題,第二是我們沒有辦法復(fù)用這套系統(tǒng),比如我像讓我剛做好的房子也搖身一變成為石頭房,就只能重新做一套粒子系統(tǒng),而且大概率還會(huì)出問題。而解決的方法也很簡(jiǎn)單,那就是用幾何節(jié)點(diǎn)來自動(dòng)生成“鵝卵石”!
以鵝卵石鋪設(shè)的道路為例,它們最大的特點(diǎn)就是幾乎沒有擺放的規(guī)則,以無序的組合構(gòu)建了一個(gè)有序的物體,所以我們要做的第一件事就是打破物體的既有網(wǎng)格布局,在這里我們就以最簡(jiǎn)單的“柵格”為例,新建任意物體進(jìn)入幾何節(jié)點(diǎn)編輯器,用“柵格”連接“組輸出”,我們默認(rèn)會(huì)得到一個(gè)3×3總計(jì)9個(gè)頂點(diǎn)的平面,在這里我們稍微調(diào)整一下數(shù)據(jù),比如3m×3m以及X/Y方向各20個(gè)頂點(diǎn),接下來要做的,就是讓這些一個(gè)個(gè)的小格子都變化出不同的形狀并向上擠出,以獲得滿地“鵝卵石”的視覺效果。
緊接著我們要用三角化和對(duì)偶網(wǎng)格來讓這些小格子都變成菱形,并且我們需要使用“隨機(jī)值”的“布爾”來控制“三角化”的范圍,具體設(shè)置可以參考圖1。
這樣做就是為了讓這些小格子有更多的隨機(jī)屬性,但顯然這幅度并不夠,因此我們還需要讓“柵格”的每個(gè)頂點(diǎn)位置發(fā)生一些偏移,這就需要用到咱們非常熟悉的套路——使用“噪波紋理”和“矢量相減”“矢量縮放”“矢量相乘”和“設(shè)置位置”來讓“柵格”的頂點(diǎn)在X/Y方向產(chǎn)生隨機(jī)位移,就能獲得如圖2的效果了,這樣看上去是不是就有點(diǎn)像鵝卵石路面了呢?
通過第一步我們已經(jīng)得到了一個(gè)個(gè)的小方格,那么問題來了,該怎樣讓它們一個(gè)個(gè)分開來向上擠出呢?首先,我們需要使用“拆分邊”來讓每顆“鵝卵石”都成為獨(dú)立的個(gè)體,這里也可以用“隨機(jī)值”的“布爾”來進(jìn)行選擇,這樣有的石頭會(huì)明顯更大,有的更小。
然后再使用“縮放元素”來控制它們每一個(gè)的大小,這里可以用一個(gè)“隨機(jī)值”來讓每個(gè)“鵝卵石”的縮放都有所差異,接下來就是最重要的一步:“擠出網(wǎng)格”,這是Blender 3.1之后才有的功能,也是為什么我們建議大家一定要用最新版本的原因,擠出的“偏移比例”我們同樣需要用一個(gè)“隨機(jī)值”來賦值,畢竟沒有完全平整的鵝卵石道路嘛,而且記得取消勾選“各面”,這樣我們剛剛在“拆分邊”做的石塊大小區(qū)分才能正確顯示,這一步的節(jié)點(diǎn)可以參考圖3。
最后,也是最關(guān)鍵的一步,讓我們的每一顆“鵝卵石”都變得更圓滑,畢竟我們剛得到的是一個(gè)個(gè)的棱角分明的“石柱”,這里就需要用到“表面細(xì)分”,“鵝卵石”的形狀立馬就呈現(xiàn)出來了,這時(shí)候可以適當(dāng)調(diào)整“折痕”值以獲得更真實(shí)的效果。
此時(shí)我們還可以更進(jìn)一步,因?yàn)榧幢闶蛆Z卵石,但表面依然還是有一定粗糙度的,所以我們還可以繼續(xù)利用“噪波紋理”和“矢量相減”“矢量縮放”“矢量相乘”和“設(shè)置位置”這個(gè)組合來讓“鵝卵石”在Z軸方向讓所有的頂點(diǎn)進(jìn)行隨機(jī)偏移,最后再加一個(gè)“設(shè)置著色平滑”,進(jìn)而獲得如圖4的效果。
本文所用幾何節(jié)點(diǎn)編輯器一覽
這個(gè)設(shè)計(jì)最妙的是可以直接套用到任何模型上,而且我們可以把關(guān)鍵功能,比如細(xì)分精度等連接到“組輸入”,這樣一來哪怕不進(jìn)入節(jié)點(diǎn)編輯器,也能在修改器標(biāo)簽里進(jìn)行數(shù)據(jù)的調(diào)整,非常方便。事實(shí)上本期的內(nèi)容雖然節(jié)點(diǎn)比較多,但從邏輯上來說并不復(fù)雜,只是需要大家牢牢理解并運(yùn)用各個(gè)節(jié)點(diǎn)的基本功能,算是一個(gè)基礎(chǔ)練習(xí)的好案例吧。