什麼是程序式貼圖?
程序式貼圖是指描述表面如何製成,而不是繪製它看起來的樣子。你建立的不是像素,而是一小組規則——這個尺度的雜訊、扭曲到這個程度、在模型凹陷處加深——材質就由它們生成。改變一條規則,整個表面就重新推導。
作者: Mixos
簡短回答
程序式材質由節點圖建立:生成器節點產生圖案,濾鏡節點塑造它們,混合節點組合它們,輸出則成為表面的 PBR 通道。由於每個步驟都保持即時,材質與解析度無關,可以無止境地調整,並能在不同模型間重複使用——不像繪製的貼圖,像素一旦畫下就固定了。

用規則取代像素
手繪貼圖是一張圖片:一個像素網格,其意義就是你畫進去的內容。程序式貼圖則是一份配方。它說的大致像是:「從橫跨八格的細胞雜訊開始,稍微扭曲讓細胞不規則,用它當灰縫圖案,再把模型環境光遮蔽高的地方的灰縫加深。」在被運算的那一刻之前,沒有任何東西以影像形式儲存。
這個區別有實際的後果。因為材質是一份描述,所以能以任何解析度算圖而不變模糊——同一個節點圖可以從相同規則產生 512px 的預覽或 4K 的匯出。因為它是參數化的,「讓磚塊變大」只是拉一個滑桿,而不是重繪。而且因為它是描述,所以不綁定特定模型:同一個節點圖套用到不同網格,會為該形狀產生適當的結果。
節點圖實際如何運作
程序式材質幾乎都以節點圖製作,因為配方自然就是一連串步驟。節點分為幾個家族。生成器(Generators)憑空創造出東西——分形雜訊、細胞或 Voronoi 圖案、漸層、條紋。濾鏡(Filters)接收一個輸入並重塑它——模糊、色階、曲線、色相與飽和度調整、推動圖案使其不再顯得機械的扭曲。混合(Blends)接收兩個輸入,以模式或遮罩組合。
節點圖終止於輸出節點,它把你的結果對應到 PBR 通道:這個分支驅動基礎色,這個驅動高度,這個驅動粗糙度。由於各通道是從共用的上游節點一起製作,它們保持一致——抬高凹凸的同一組雜訊,可以在完全相同的位置讓表面變粗糙、顏色變暗,這正是讓程序式材質看起來像一個物理表面,而不是四張毫無關聯貼圖的原因。
讓節點圖顯得聰明的一步,是輸入網格自身的資料。從模型烘焙環境光遮蔽、曲率、凹槽(cavity)與坡度,這些貼圖就成為節點圖的輸入——於是「凹縫裡的髒汙」變成以遮蔽度遮罩的混合,「邊緣磨掉的漆」變成以曲率遮罩的混合。材質因此會適應你套用的任何形狀。
程序式與手繪的比較
在表面有邏輯的地方,程序式勝出:磚、瓷磚、織物紋理、刮傷的金屬、積在低處的鏽、沿每條邊的磨損。這些都是有規則的,需要覆蓋大面積而不出現明顯重複,而且事後能調整對它們幫助極大。
在表面有意圖的地方,手繪勝出:一塊講述故事的特定汙漬、位置精確的標誌、主角資產上刻意的美術指導。沒有任何節點圖會把擦痕剛好放在故事需要的位置。
實務上,幾乎每個好的材質都兩者兼具。常見的做法是以程序式建立基底,使其能覆蓋並適應,再手繪處理細節——這正是為什麼程序式材質與手繪圖層能放在同一個堆疊裡,而不是分在不同應用程式中,這件事很重要。
不用安裝任何東西就能試用
過去,程序式製作意味著專用的桌面應用程式與一份授權。Mixos 在瀏覽器中內建以節點為基礎的材質編輯器:加入一個 Node Material 圖層,把生成器經由濾鏡連接到混合節點,並在節點圖於你的 GPU 上運算時,看著結果在你的模型上即時成形。
因為節點圖是一個圖層而不是獨立文件,你可以對它加遮罩、與其他圖層混合,並在上面繪製——也就是程序式基底加手繪細節的工作流程,中間不需要匯出這一步。
製作任何程序式內容的最後一步,是決定什麼要保持可調整。在 Mixos 中這就是公開(publishing):點選參數旁的滑桿圖示,它就成為材質上的變數,你可以重新命名、分組並給予合理的範圍。這些公開的設定會出現在圖層自己的面板上,所以完成的材質只剩幾個有意義的旋鈕——貼圖大小、磨損量、顏色——即使你早已不再去想它背後的節點圖。
常見問題
用簡單的話說,程序式貼圖是什麼?
就是用規則而不是像素來建立材質。你描述表面如何生成——圖案、扭曲、混合——由電腦產生影像。改變一條規則,整個材質就會重新生成,所以在匯出之前沒有任何東西被烘焙固定。
程序式貼圖比手繪更好嗎?
沒有誰更好;它們解決不同的問題。程序式更適合有規則、需要覆蓋大面積並保持可調整的表面。手繪更適合刻意、特定的細節。多數製作用的材質是程序式基底,再加上手繪細節。
程序式貼圖能無縫平鋪嗎?
一般來說會——生成器節點通常寫成在貼圖邊緣自動銜接,所以輸出在設計上就能無縫平鋪。這正是程序式材質被用於地形、牆面與地板等大面積表面的主要原因。
建立節點圖需要懂技術嗎?
比你想的要少。思考模型是一串簡單步驟,多數材質只用少數幾種節點類型。比較有幫助的做法是先打開一個現有材質的節點圖,改動東西看看有什麼變化,而不是從空白畫布開始。
程序式材質能對模型的形狀做出反應嗎?
可以,而且這正是讓它們看起來可信的技術。從網格烘焙環境光遮蔽與曲率這類貼圖,並作為遮罩輸入節點圖,讓髒汙自動沉積在凹處、磨損自動出現在邊緣,無論這些特徵在那個特定模型上的位置在哪裡。
什麼是公開的參數,或材質的變數?
節點圖裡可能有數百個數字,但對使用材質的人來說只有少數幾個重要——貼圖大小、磨損程度、顏色。公開(Mixos 稱為 publishing)會把這些從節點圖中提取出來,放到材質本身上,成為帶有各自範圍的具名變數,讓材質無須讀懂節點圖就能重新調整。這就是可重複使用的材質與一次性材質的分別。