萬物皆可「鵝卵石」,Blender幾何節點教學

電腦報評論 發佈 2022-03-20T14:52:47+00:00

一般情況下我們想要在Blender里舖設一條鵝卵石道路,你會怎麼構思呢?是不是先做幾顆鵝卵石,然後再做地面,然後利用粒子系統讓石頭作為毛髮?

一般情況下我們想要在Blender里舖設一條鵝卵石道路,你會怎麼構思呢?是不是先做幾顆鵝卵石,然後再做地面,然後利用粒子系統讓石頭作為毛髮?


這個方法雖然理論上可行,但存在幾個問題,第一是粒子系統有比較嚴重的實例重疊,也就是石頭與石頭之間會存在穿模問題,第二是我們沒有辦法復用這套系統,比如我像讓我剛做好的房子也搖身一變成石頭房,就只能重新做一套粒子系統,而且大概率還會出問題。而解決的方法也很簡單,那就是用幾何節點來自動生成「鵝卵石」!


第一步:打破物體原有網格布局


以鵝卵石鋪設的道路為例,它們最大的特點就是幾乎沒有擺放的規則,以無序的組合構建了一個有序的物體,所以我們要做的第一件事就是打破物體的既有網格布局,在這裡我們就用最簡單的「柵格」為例,新建任意物體進入幾何節點編輯器,用「柵格」連接「組輸出」,我們默認會得到一個3×3總計9個頂點的平面,在這裡我們稍事調整一下數據,可以比如3m×3m以及X/Y方向各20個頂點,接下來要做的,就是讓這些一個個的小格子都變化出不同的形狀並向上擠出,以獲得滿地「鵝卵石」的視覺效果。


緊接著我們要用三角化和對偶網格來讓這些小格子都變成菱形狀,並且我們需要使用「隨機值」的「布爾」來控制「三角化」的範圍,具體設置可以參考圖1。


圖1


這樣做就是為了讓這些小格子有更多的隨機屬性,但顯然這幅度並不夠,因此我們還需要讓「柵格」的每個頂點位置發生一些偏移,這就需要用到咱們非常熟悉的套路——使用「噪波紋理」和「矢量相減」「矢量縮放」「矢量相乘」和「設置位置」來讓「柵格」的頂點在X/Y方向產生隨機位移,就能獲得如圖2的效果了,這樣看上去是不是就有點像鵝卵石路面了呢?


圖2


第二步:分塊擠出並圓滑「鵝卵石」表面


通過第一步我們已經得到了一個個的小方格,那麼問題來了,該怎樣讓它們一個個分開來向上擠出呢?首先,我們需要使用「拆分邊」來讓每顆「鵝卵石」都成為獨立的個體,這裡也可以用「隨機值」的「布爾」來進行選擇,這樣有的石頭會明顯更大,有的更小。


然後再使用「縮放元素」來控制它們每一個的大小,這裡可以用一個「隨機值」來讓每個「鵝卵石」的縮放都有所差異,接下來就是最重要的一步:「擠出網格」,這是Blender 3.1之後才有的功能,也是為什麼我們建議大家一定要用最新版本的原因,擠出的「偏移比例」我們同樣需要用一個「隨機值」來賦值,畢竟沒有完全平整的鵝卵石道路嘛,而且記得取消勾選「各面」,這樣我們剛剛在「拆分邊」做的石塊大小區分才能正確顯示,這一步的節點可以參考圖3。


圖3


最後,也是最關鍵的一步,讓我們的每一顆「鵝卵石」都變得更圓滑,畢竟我們剛得到的是一個個的稜角分明的「石柱」,這裡就需要用到「表面細分」,「鵝卵石」的形狀立馬就呈現出來了,這時候可以適當調整「摺痕」值以獲得更真實的效果。


此時我們還可以更進一步,因為即便是鵝卵石,但表面依然還是有一定粗糙度的,所以我們還可以繼續利用「噪波紋理」和「矢量相減」「矢量縮放」「矢量相乘」和「設置位置」這個組合來讓「鵝卵石」在Z軸方向讓所有的頂點進行隨機偏移,最後再加一個「設置著色平滑」,進而獲得如圖4的效果。


圖4


本文所用幾何節點編輯器一覽


本章小結:看似複雜,其實很基礎


這個設計最妙的是可以直接套用到任何模型上,而且我們可以關鍵功能,比如細分精度等連接到「組輸入」,這樣一來哪怕不進入節點編輯器,也能在修改器標籤里進行數據的調整,非常方便。事實上本期的內容雖然節點比較多,但從邏輯上來說並不複雜,只是需要大家牢牢理解並運用各個節點的基本功能,算是一個基礎練習的好案例吧。

關鍵字: