薛山
我們的建筑效果簡單來說就是“搭積木”,通過讓X、Y、Z方向的“積木”數量變化來形成生長效果,而且為了增強戲劇化,還需要“積木”有不同的設計,而且在生長過程中“積木”還會隨機變化。為此,我們簡單設計3個不同的模塊,如圖1所示。注意,這里需要把它們的尺寸設置為完全相同,這樣才能方便我們的后續調整。
將這3個模塊新建一個集合,接下來我們再隨便新建一個物體,然后進入它的幾何節點編輯器,先斷掉組輸入和組輸出的連接,新建一個柵格并連接到組輸出,這時候會看到它自動生成了一個平面,然后再新建一個點實例,并選擇3個模塊的集合,這時候你會看到一個有明顯重疊的模型,這是因為點實例會在平面的每一個頂點上放一個模塊,這時候我們的模塊是垂直擺放的,而平面是水平擺放,而且頂點數量也存在不匹配的情況,所以需要修改柵格的數據,這里可以參考圖2所示,首先使用變換來沿X軸旋轉90°,讓平面立起來,然后再將X、Y尺寸修改為與我們模塊尺寸相同的數值,并且X、Y頂點都只放2個,這樣,我們就獲得正確的效果了,這時候調整點實例的隨機種其實就能看到模塊在不斷變化了。



如果你修改柵格的數據,你會發現X、Y尺寸和X、Y頂點的關聯并不是那么的簡單,因為我們模塊的X長度為1m,所以尺寸X和頂點X的關系正好是尺寸X+1=頂點X,按照這個關系就能實現X方向的無縫生長。而模塊的Y長度為2,這意味著尺寸Y每增加2m,頂點Y才增加1,所以我們必須準確按照這個邏輯來進行設置,具體的幾何節點設置如圖3。
但這時候你又會發現,這面墻的生長是以中心為原點,而我們希望它以下方某一個角為原點,要怎樣進行修正呢?其實也很簡單,只需要再使用一個變換,讓它在增長時不斷位移以實現某一個角始終與世界原點對齊即可,而且這時候也很容易發現其實它的X軸補償值就是X頂點一半的數量,而Z軸補償值等于Y頂點數量,所以只需如圖4所示設置幾何節點編輯器,就能實現理想的生長效果了。

至此,我們的第一面墻就完成了,但建筑都至少有4個面,所以我們還需要進一步把這第一面墻進行旋轉和位置控制,這時候需要再通過變換,來搞定另外的3面墻。首先搞定緊鄰原點的第2面,這一面只需要旋轉-90°就能搞定,但還需要將Y縮放設置為-1,讓“窗戶”正確朝向外面。
而第3面和第4面也如法炮制,但區別在于這兩面需要調整X、Y的位置,而這個調整值不難發現其實就是X頂點的值,只是有一面是正數,有一面是負數,因為幾何節點沒有反向功能,所以需要一個簡單的數學邏輯進行設置,具體的參數圖可以參考圖5。

幾何節點工具需要較強的空間理解能力
作為一款以3D建模為起點的軟件,Blender在這些年實現了功能模塊的大幅增強,幾何節點作為最新的功能,很多玩法都還在挖掘的過程中,本期教程實現的效果就是一個比較好的學習案例。在學習過程中不難發現它跟著色器一樣,需要一定的數學邏輯思維,但相對來說更強調空間理解能力,你需要不斷地發現參數之間的關聯,這樣才能不斷地解決問題,是一個很不錯的思考能力測試工具。