所有文章
教學 · 7 min read

用於材質混合的頂點繪製:無縫的地形與網格過渡

頂點繪製如何混合材質以消除可見接縫——勝過線性 alpha 的高度混合技巧、把泥畫進草裡、把苔蘚畫上岩石、效能考量,以及它在貼花與平鋪貼圖旁邊落在何處。

Aerial view of a forested river valley crossed by a steel bridge and a road

簡而言之: 一種材質遇上另一種處的硬接縫——草撞上岩石、泥遇上石頭——是業餘環境最大的破綻之一。頂點繪製直接在網格上混合材 質來抹去那些接縫,而「高度混合」讓過渡看起來自然,而非像一次漸隱。本文解釋頂點混合如何運作、把好過渡與糊爛過渡分開的高度混合技 巧、在哪裡繪製它、它在執行時花費什麼,以及它如何與貼花和平鋪貼圖相配。

一片河口三角洲,水、淤泥與植被彼此交融 自然沒有硬邊。水遇淤泥遇草之處,過渡是不規則且交錯的——正是頂點混合所重建的,好讓你的材質不再以筆直、顯眼的線相遇。

問題:接縫出賣一切

真實表面不規則地過渡——草爬進碎石、泥在低處積成水窪、苔蘚爬上岩石的背陰面。兩種材質之間一條硬直線立刻讀作假,無論每 張貼圖多好。

你可以有兩張照片級貼圖,卻仍得到一個看著不對的環境,因為二者之間的過渡才是可信度所在。在真實世界裡,材質相互滲透:塵土沖進裂 縫、草朝一條路徑變稀、雪聚在岩架上。一條沿著銳利多邊形邊緣從草切換到岩石的遊戲表面,在尖叫「由瓦片拼成」。頂點繪製是溶解那些邊緣 的首要工具,讓材質像它們在戶外那樣相互滲流。

頂點混合如何運作

每個頂點儲存顏色/alpha 資料;一個混合材質讀取它,在表面上逐像素混合兩種或更多貼圖。在引擎內繪製頂點資料,材質就在你繪 製之處過渡,無需額外 UV 或幾何。

網格上的每個頂點都能攜帶一點額外資料——頂點色,通常四個通道。一個混合材質把那資料解讀為一張遮罩:通道強處,顯示材質 A;弱處,顯 示材質 B;並在其間插值。因為你在編輯器裡直接在模型上繪製頂點資料,你便用手控制過渡,恰在你想要之處——牆基處的泥、地板角上的磨損、 巨石一側的苔蘚。它不花額外的 UV 集,也不加幾何(除了擁有足夠頂點來把細節繪製進去),這正是它作為地形與大網格的主力混合技法的原 因。

高度混合技巧

別在 alpha 上線性混合——用一張高度圖來混合,好讓上層材質先填滿裂縫與低處。線性混合給出柔軟糊爛的漸隱;高度混合給出銳利、 自然、交錯的過渡。

這是你混合材質單個最重要的升級,也是把專業過渡與塗糊過渡分開的東西。一個天真的混合沿遮罩在兩張貼圖間線性漸隱,產生柔軟、幽靈般的 重疊,看著像 Photoshop 的漸變。而高度混合改用材質的高度/置換資訊來決定過渡:進入的材質先沉進處——砂漿縫、裂縫、凹痕——再覆 蓋高點,恰如真實的塵土、沙或雪堆積。結果是一道銳利、不規則、可信的邊界,而非一次模糊的漸隱。若你的混合看著糊爛,加入一個基於高度 的過渡幾乎總是解藥。

森林的邊緣遇上開闊地,植被變稀 森林邊緣是野外的一次混合:樹線不在一條線上停住,它散開並變稀。基於高度的頂點混合重建那道參差、交錯的過渡,而非一道乾淨的邊界。

在哪裡繪製它

在表面自然互動之處繪製過渡——牆基(泥/潮)、地板的角與邊(磨損)、岩石的背陰面(苔蘚)、低處(泥/水窪),以及任何兩個地 形層相遇之處。

頂點混合在眼睛檢查真實感之處回報最大:接觸點與磨損區。幾處始終該考慮的高價值位置——爬上牆基的塵與濕;腳落之處的地板與台階角上的擦 痕與外露材質;岩石北/背陰面的苔蘚與地衣;最低點的泥與積水;以及一處景觀上地形層之間的接縫。這些正是講故事者所裝點的同樣位置,因為 它們是一個地方展示其歷史之處。繪製它們,一套乾淨、嶄新模樣的套件就驟然讀作風化而真實。

效能與限制

混合材質每像素花費更多(它們取樣多個貼圖集),所以在過渡要緊之處用它,而非到處。頂點細節受網格密度所限——你只能畫到頂點 所允許的那麼細。

混合並非免費:一個雙層或三層混合材質每像素取樣數張貼圖,所以比單一材質更貴。這在英雄地形和相機端詳的表面上沒問題,但把一個四層混 合一律套到每個網格上是在浪費 GPU。另一個限制是解析度:頂點繪製只能細到網格有多密,所以一堵低模牆扛不起一道精細的繪製過渡——這就是 貼花登場、在其上加入更小尺度細節之處。在每個尺度用對的工具:寬過渡用頂點混合,銳利的局部細節用貼花。

它與別的工具如何相配

頂點混合處理中等尺度的材質過渡;平鋪貼圖廉價地提供基礎細節;貼花加入太細而無法逐頂點繪製的銳利局部特徵(裂縫、汙漬、滲 漏)。它們疊層。

這些工具沒有一個在競爭——它們分層。平鋪貼圖給你在大表面上負擔得起的高頻細節。頂點混合把那些平鋪材質混合,好讓它們不以硬線相遇。貼 花隨後坐在其上,為頂點解析度夠不到的特定、銳利細節而設——一道裂縫、一處灼痕、一道接縫上的水漬。一個成熟的環境表面通常三者同時。把 可信的材質混合送進遊戲——並讓它烘焙成標準引擎材質,好讓它在執行時不花費任何意外——正是 Numivo 被打造來化為例行公事 的那種表面工作,好讓接縫消失,而無需為每一次兩種材質的相遇寫一個定製著色器。

值得偷的現場數字

  • 修好糊爛混合的升級:高度混合,而非線性 alpha
  • 頂點繪製細節上限 = 網格頂點密度——更密的網格,更細的繪製
  • 最高價值的繪製區:牆基、地板邊、背陰岩石、低處
  • 混合材質成本隨所取樣的層數增長——把多層混合留給英雄表面
  • 完整堆疊:為局部細節用平鋪基底 → 頂點混合 → 貼花

迷你問答

地形用頂點繪製還是 splat/權重圖? 同樣的想法,不同的儲存——地形常用層權重圖(一張貼圖遮罩)而非頂點色,這把細節與網格密度解耦。 網格用頂點色;大地形常用層圖。高度混合原理對兩者都適用。

為什麼我的混合看著柔軟而糊爛? 你幾乎肯定在 alpha 上線性混合。切換到由高度/置換驅動的混合,好讓過渡先沉進低處,柔軟便化作一道銳 利、自然的邊緣。

多少混合層算太多? 兩層便宜且覆蓋大多數過渡;三層對地形常見;四層及以上變得昂貴且難以製作。若你需要更多,問問貼花或第二種材質會 否更勝任。

我需要為此寫一個定製著色器嗎? 混合邏輯足夠標準,多數引擎與工具集都提供它,而烘焙成樸素引擎材質讓執行時成本可預測。你很少需要定 製著色器程式碼——你需要的是高度混合的設定和一個合理的繪製之處。

接縫是可信環境被贏下或輸掉之處。在表面真正互動之處繪製你的過渡,按高度而非平坦漸隱去混合,並在其周圍疊上平鋪與貼花——你的材質便會 像它們在世界裡那樣相遇:不規則地、交錯地,且沒有一條洩底的直線。