簡介
今天要介紹的是 Unity 官方釋出的模型編輯軟體,我個人覺得比較適合使用在地形上;在先前我們有許多案例都是使用 Terrain 來編輯地形,但Terrain的缺點是物見面數太高,材質太呆版,自由度比較不高。而 PolyBrush 可以透過在 3D 軟體做好的地形或是用 ProBuilder 做好的地形再透過 PolyBrush 來細部微調與編輯,也是一套好用的套件。

我們直接來介紹,可以看到我們分成五個段落來介紹上圖的 1-5 功能與用法。
Mesh Sculpting & Smoothing vertices


該處功能是在調整模型的頂點起伏,在 Setting 的部分可以設定起伏的衰減值曲線,且可以調整做動的筆刷外徑與內徑,並可調整起伏的強度。而此區的調整也可以透過滑鼠的滾輪做初步調整。

第二部分則是在調整物件時可以讓變形的更自然,提供了鏡像調整,有分別不同軸向按鈕,下圖是在調整時會出現的 Gizmos。


模型 Smooth 化的設定與編輯起伏設定相同,應該說 Brush Settings Mirroring 都會一直存在於1-5的功能的最上層,而我在此段先介紹一下。而 Smooth 的功能可用在某些模型的面不這麼平滑時可以快速地使用編輯。
Painting Colors on a Mesh

先決條件是假如要在網格物體上應用頂點顏色,您需要應用支持頂點顏色的材質,不然無法在 Material 上配合 Mesh 進行上色,如下圖警示,優點是 3D 模型不需要拆 UV,缺點是比較適用於卡通風格的遊戲,如果需達到擬真的效果必須增加大量的多邊形。

在進行頂點著色時可以選擇著色模式,Brush , Fill , Flood,而且還可以選擇 RGBA的 Mask 區隔某 Channel 的色區,而產生的顏色也會不同。而搭配不同的 Shader也會有不同的效果,之後可以研究此方向。
Texture painting and blending

PolyBrush 也提供了不用拆 UV 直接在模型上進行繪製材質的功能,但要注意一點,賦予要使用該功能的材質必須要用複合性材質(講白話一點,要多擁有多個Texture Channel的材質球)。這邊我們就用官方提供的 Lit Texture Blend LWRP Shader,並把需要用到的 Texture 拖曳至 Channel 中。

可以看到把 Material 附著上物件後,在 PolyBrush的 Paint Texture 選項中,按下 Configure 會出現下圖的調整參數,其實這邊簡單來說是透過 RGBA 不同Channel來在模型這張畫布上畫上不同材質。假如都不調整 Index 的選項則不會有效果,大家可以試試看,我們就先調整 Index 讓功能可以正常 Work,實際操作如下方影片。

Scattering Prefabs

最後我們來介紹在模型上種上其他 Prefab 物件的功能,也類似 Terrain 可以種樹種草,時作方法先新增你的可種物件在 Current Palette,點下物件後會在下方出現 Placement Setting 區塊,可調整 Prefab 的密度、隨機大小、隨機角度,讓新增物件更加自然。
都調整好之後按下 Current Palette 物件 Icon 中有個 Toggle,就會新增到 Brush Loadout 可用區直接畫在畫布上。

小結
其實 PolyBrush 與 Terrain Brush 有點類似,各有優缺點,但 PolyBrush 的活用度更高,不單只是用在 Terrain 上,爬了網路上文章,很多都是在動態 Shader 使用 PolyBrush 可視化的修正編輯,在未來可以研究一下動態 Shader+PolyBrush 應用,本篇就簡單基本介紹了該好用的工具。