【Substance】Substance Painter基本製作流程

這篇東西主要來自於官網Substance Painter入門視頻教程的要點總結,記錄sp中基本概念和製作流程。
中文版鏈接(中文視頻是優酷的不用翻牆)

準備工作

創建項目&導入模型
File → New打開New Project窗口,Select選擇要導入的模型。
Normal map format : 法線標準,DirectX (X+, Y-, Z+) 和OpenGL (X+, Y+, Z+)。
Compute tangent space per fragment :在切線空間計算片元的切線。
Document resolution: 貼圖分辨率(可以在工作過程中在Texture Set界面改分辨率,而且如果中途修改分辨率並不是對原先畫好的貼圖進行簡單的縮放,而是重新生成,因此放大分辨率不會有模糊的問題)。

Docks
sp界面右上角的一列圖標爲我們在製作中要用到的菜單窗口,我們可以點擊圖標來打開窗口,也可以將窗口拖動至任意位置,關閉的窗口將會回到該位置顯示爲圖標。

Texture Set & Set Shader
導入模型中的不同部分爲不同的Texture Set,不同的Texture Set可以使用不同的Shader來給每個部分做不同的材質效果。

Texture Set List窗口可以看到當前導入模型的所有Texture Set,右側顯示的是它們各自使用的Shader,默認爲Main Shader,可以點擊下拉框創建新的Shader。Shift + Alt + 右鍵點擊模型可以快速選中點擊位置所在的的Texture Set。

在Shader Settings窗口可以編輯當前選中的Texture Setting所使用的Shader的屬性,可以選擇使用哪種着色方式、編輯名字等。

在Texture Set Settings窗口可以管理當前選中的Texture Set的通道(不同的Shader需要不同的輸入通道,如pbr matel-rough-with-alpha-blending就需要一個Opacity的通道作爲透明度),編輯各類屬性,查看已經烘焙的貼圖。

烘焙
在Texture Set Settings窗口點擊Bake Mesh Maps可以打開烘焙窗口。

下方按鈕Bake all texture set和bake xxxx mesh maps分別爲爲所有Texture Set烘焙和只爲當前選中的Texture Set烘焙。左側可勾選各種烘焙項。
烘焙的貼圖可以被許多Smart Material使用,Smart Material的一些generator會根據網格的Normal Map、Ambient Occlusion Map等智能地生成效果,如在孔洞、棱角處的特殊效果。

使用fill layer完成70%

根據視頻教程作者推薦的方式,製作流程先使用fill layer來完成70%左右的效果,再使用standard layer繪製細節完成剩餘部分。因此第一步我們將通過fill layer、mask、effect stack和各種混合模式的配合來完成初步的材質效果。

base fill layer
創建一個名爲base的fill layer,fill layer的property面板可以選定該fill layer覆蓋的通道,我們在這裏選定基本底色、粗糙度、金屬度等。按C可以在各通道視圖間切換,M可以回到正常材質渲染視圖。

various fill laye
在base層的上方添加更多fill layer來爲材質添加豐富性,比如你想要模型表面有更豐富的粗糙度變化,那麼就添加一個覆蓋通道爲rough的fill layer,並通過mask來限定它。顏色、凹凸等同理。

mask & effect stack
在base fill layer上疊加的various fill layer需要使用mask來限制區域和程度,基本方法爲爲various fill layer添加black mask,再爲mask添加effect stack來得到想要的mask。

effect stack
上圖所示下拉框可以爲選中的mask或者layer添加effect。按住Alt+左鍵點擊mask可以只看mask視圖(灰度),按M還原。接下來介紹幾種視頻教程中使用到的實用effect。主要爲generator effect和fill effect。generator effect會根據網格拓撲結構和形狀做一些智能的區域限制,因此會使用烘焙的貼圖如Position Map、Worldspace Normal Map、Ambient Occlusion Map等。fill effect則是簡單的紋理,不會根據網格特性調整。許多effect需要選擇triplanar三向紋理模式來避免出現斷層。

Generator/Dirt
孔洞、角落處(Occluded Areas)更亮,可以用於限制針對這些區域的材質效果(如生鏽特別嚴重)。

Generator/Light
模擬光照效果,Verticle Angle拉到270爲從上向下照射,即越水平的面越亮。

Generator/Mask Editor
可以實現豐富的mask類型,教程中使用Curvature成分,將Mode設爲Dual,可以讓網格的轉角區域變亮,可以用於限制針對這些區域的材質效果(如磨損特別嚴重等)。或者使用Position Gradient成分,可以產生上下、左右等方向的漸變效果。Mask Editor還可以引用兩張Texture配合各自的混合模式來對生成的效果進行限制。

fill effect
有Grunge Concrete Old、Grunge Map、Grunge Scratches Rough、Grunge Rust Fine、Bnw Spot等等Texture可選(Grunge開頭的一大堆),可以實現劃痕、磨損等等效果。

filter effect
過濾器,可對mask或layer做特殊的處理。如HSL Perceptive可以調整HSL通道來調整顏色,常用於fill layer的effect;Blur則可以產生模糊的效果。

混合模式
無論是layer stack還是effect stack,都是由底而上進行疊加,通過每一項設置的混合模式來計算每一步疊加後的結果。

在觀察Layers窗口中,可以在每一項的右側看到選擇的混合模式以及透明度。需要注意的是,這些信息是基於窗口左上角所選擇的通道的。上圖中所有的混合模式和透明度都用於Base Color通道的混合,而同一圖層的不同的通道可能有不同的混合模式和透明度,甚至默認的混合模式也是不同的。如Base Color通道的默認混合模式爲Normal,即覆蓋;Height通道的默認爲Linear Dodge(Add),這種混合模式會將每個圖層的顏色疊加起來;AO通道的默認爲Multiply,即相乘;Normal通道的默認爲Normal Map Detail,爲與法線相關的一些計算方法,等等。
幾種常見的混合模式:
Normal模式爲簡單覆蓋,上層會完全覆蓋掉下層的結果
Lighten(Mix)爲變量,可以用於上層mask的白色區域疊加在下層mask之上的情況(如在點狀區域的基礎上再加上劃痕區域)
Multiple爲相乘模式,可以用於想要用上層mask的黑色區域屏蔽掉下層mask的情況(如下層爲一個大區域的grunge效果,通過multiple模式的上層mask將下層的作用區域限定在一定範圍)等
這段可能說的不太清楚,各種混合模式的使用方式詳見視頻教程,關於更多混合模式的參考可以看這篇帖子

Smart Material & Smart Mask & Layer Instancing
製作完的mask或folder(將多個layer放進一個文件夾裏)可以創建Smart Mask和Smart Material,之後就可以在其它Texture Set上直接使用。但這樣各個Texture Set上對這個材質的改動是無聯繫的。爲了能夠讓在一個Texture Set上對material的改動自動應用到其它的Texture Set上,我們可以通過右鍵點擊folder,選擇Instantiate Across Texture Sets,選中要將當前layer集複製到哪些Texture Set上。在那些Texture Set上就會出現當前選擇的複製。

通過這種方法得到的layer folder右側會有上圖所示圖標,點擊圖標會在Property面板顯示當前的材質繼承關係。只有源材質纔可以編輯,且所有改動將會自動應用到所有繼承的Texture Set中。

手繪材質完成剩餘30%

standard layer
fill layer是不允許繪製的,因此我們需要創建standard layer進行手繪。

在standard layer的Properties窗口中,有四欄分別爲Brush,Alpha,Stencil,Material,分別包含了筆刷四個方面的信息。
Alpha欄:決定了筆刷的形狀(如箭頭形狀的筆刷,是由於使用了箭頭形的Alpha遮罩)
Brush欄:包含了筆刷的大小、透明度、旋轉等信息,Angle表示Alpha遮罩的旋轉,即筆刷形狀的旋轉,Jitter相關的屬性可以使筆刷畫出類似泡沫的效果。Follow Path選項開啓會使Alpha遮罩隨着畫筆的繪製路徑而旋轉,Alignment選項爲筆刷投影至網格表面的方式。
Stencil欄:可以爲筆刷設置模板,使繪製區域被限制在所選擇的stencil內。
Material欄:決定了繪製的結果。Alpha和Brush都與繪製的區域和強度有關,但沒有定義繪製的結果。Material中可以定義筆刷對各個通道的影響結果。

Brush/Tool/Material
在Properties窗口中點擊右鍵,可以看到將當前筆刷保存爲Brush/Tool/Material三個選項。其中Brush類型會包含Brush欄和Alpha欄的信息,但獨立於Material欄的信息;Material類型則只包含Material欄的信息。Tool則是包含了所有欄的信息。在Shelf窗口可以找到sp自帶的Brush/Tool/Material資源,在選擇時也要注意這三中資源類型所包含的筆刷信息。

快捷鍵

  • Ctrl + 右鍵上下移動 = 縮放brush size
  • Ctrl + 右鍵左右移動 = 改變alpha hardness
  • Ctrl + 左鍵上下移動 = 旋轉alpha(改變brush angle)
  • Ctrl + 左鍵左右移動 = 改變brush flow
  • 按住A =繪製時禁用筆刷stroke opacity的build up效果(即多次塗抹使不透明度增加)
  • 按住Shift = 繪製時畫直線

Paint Effect
effect的一種,可在add effect的下拉欄中選擇添加,在effect stack中添加一個可以繪製的effect來手動靈活地調整mask的遮蔽和顯示範圍。mask本身是可以直接繪製的,但不建議這樣做,可以通過給mask添加paint effect來達到相似的目的。對於mask的paint effect而言,繪製的通道僅爲grayscale。在繪製grayscale通道時,可以按X在(當前值,1-當前值)切換筆刷產生的灰度值。

Projection Tool
可以在左側的工具欄中找到Projection Tool,使用方法和配合stencil的brush工具差不多,但stencil是通過灰度紋理限制brush繪製範圍,Projection Tool則可以設置多通道的紋理,並在筆刷塗抹的區域將紋理透射到網格上。詳見視頻教程第9集。

Clone Tool
類似PS的仿製圖章。使用方法爲:

  • 新建一個standard layer;
  • 將所有你需要仿製的通道的混合模式設置爲Passthrough
  • 按住V鼠標左鍵點擊選擇採樣位置;
  • 繪製;

Clone Tool的克隆結果可以隨着被採樣紋理的改變動態地改變。

Anchor System

之前說過generator effect會採用烘焙的AO Map、Height Map等作爲輸入來生成與網格形狀結構相關的分佈結果。但是烘焙的結果並不包含後期繪製的AO、Height等信息,即這些後期添加的效果並沒有被generator納入計算。如上圖,在某些位置繪製了更豐富的Height信息,但鐵鏽材質沒有在這些位置形成任何積累效果,這是因爲鐵鏽材質中使用的generator沒有將這些額外的Height信息納入計算。
我們可以使用Anchor System來彌補這一點。Anchor System用於使一個layer中某些channel的信息能夠在另一個layer中被引用(set a target channel in one layer in order to reference that channel data in another layer)。
在繪製這些Height信息的圖層上點擊右鍵選擇Set anchor point,圖層下會出現一個錨點。之後在鐵鏽材質中使用的mask editor generator中設置micro height的來源爲該錨點,錨點圖層的Height信息就可以被該generator引用。

設置Anchor後的鐵鏽積累效果。需要注意的是,Anchor僅可以被位於其所在layer上方的layer引用,在這個例子中,我們繪製額外高度信息的layer必須放在鐵鏽layer的下方。

添加AO
我們還可以爲額外繪製的Height和Normal信息添加AO效果。具體方法爲:在具有額外的Height或Normal信息的layer上添加filter effect,選擇MatFX HBAO(horizontal based ambient occlusion),選擇相應的Channel Source即可。

在圖層添加了Filter/MatFX HBAO後的效果。

Level Effect

在layer窗口點擊add effect → add level來爲layer添加level效果。在properties面板中可以選擇要調整色階的通道。

Mask With Color Selection

在一個Texture Set中,可能存在一些材質與整體不同的部分(如上圖中圈起來的鐵絲部分),我們需要爲它單獨創建材質,並通過Mask來避免影響Texture Set中的其它部分。怎麼比較好地爲這些位置創建Mask呢?我們可以使用烘焙的ID Map來進行Mask With Color Selection。

具體方法:右鍵點擊→Mask With Color Selection;或者添加Black Mask後add effect→add color selection。color selection效果會採用烘焙的ID貼圖作爲輸入,你可以點擊Pick Color來選擇你的Mask需要暴露的ID顏色。這種Mask方法需要在建模時做好模型零件的ID以及烘焙ID Map配合,下面介紹另一種方便的區域Mask方法。

Mask With Polygon Fill Tool
這種方法通過模型的幾何部件來快速地選擇區域。先創建一個black mask,添加paint effect,選擇工具欄中的Polygon Fill工具。

Properties窗口中,Color地值決定了被你選中的區域會在Mask上變成什麼顏色(即你是想要在mask中遮蔽/暴露你選擇的區域),可以按X快速地在0-1間切換。四種Fill Mode模式:

  • Triangle Fill:逐個選擇或框選三角形
  • Polygon Fill:逐個選擇或框選多邊形
  • Mesh Fill:選擇整個單獨Mesh
  • UV Chunk Fill:選擇整個獨立的UV區域

後兩種mode會比較常用。

Iray渲染和導出貼圖

Iray渲染
點擊右上方Rendering(Iray)按鈕即可進入渲染窗口,使用Iray引擎進行高質量的渲染。

相關的設置比較無腦,看看名字基本就明白了。Max Samples和Max Time分別是一次渲染中的迭代次數上限和渲染時間上限,無論達到哪個都會停下來。可以先設低一點調整一下大致的效果,確定後再調高質量渲染一次。渲染結果可以保存或分享。

導出貼圖

File→Export Textures打開導出窗口,Config可以選擇輸出配置,根據你導出貼圖的用處來選擇,sp已經有自帶的配置支持很多渲染引擎比如Vray、Unreal、Unity之類的,基本上選就完事了。當然你也可以自己配置,比如生成r、g、b通道分別放metallic、roughness、height之類的貼圖。

結尾

上面就是渲出來的結果啦^ ^,2160*2160分辨率跑了10000個iteration,兩個小時左右。

這裏遇到過一個問題,就是剛開始渲的時候發現算的非常慢,任務管理器一看CPU佔用率100%,GPU佔用率0%,感覺像是在用CPU計算。這裏一個是要在NVDIA控制面板允許sp用獨顯,但是設置了之後還是沒用。最後查了官方文檔才知道在程序裏也需要設置。

上圖的這個設置在Edit→Settings的General欄下,需要把CPU的勾給去掉,只勾選獨顯。設置完了再跑渲染CPU佔用率就低了很多了,速度也比之前快不少。

官網sp入門視頻教程的內容大概就是這些了,最近因爲要在Unity裏做VR項目,之後會學Substance In Unity(Unity Asset Store的官方插件)的配置使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章