01Maya 真不愧是三頭六臂,面對這些挑戰,我收集了針對Maya 質感部分具有代表性,權威性的教程。 盡管這些教程不是那麼振奮人心,但他們可以工作並可為進一步考究和改進的基礎,通過這些練習的學習來探討 Maya 各種節點的工作原理,是力圖幫助我們能攀登到 Maya 貼圖技術的頂峰,從而構造出一套有條不紊體系結構。隨著經驗的增長,不久我們就會發現自己已經變成專家了。
由於本文涉及有關 Maya 質感的高級運用,是一種更適合有經驗的用戶的形式來編寫的。加上我的翻譯水平有限,文中所譯難免有不妥之處,懇請諸位看官海涵。
在這一課裡,完全地展示了如何創建卡通材質(Cartoon shader)的實際工作步驟,我們使用RAMP節點,以及其他的幾種工具節點,對Blinn材質進行重新分布(Remapping),最終,即能達到類似卡通效果的著色方式(Shader)。
此外,本課的內容能加深對連接編輯器(Connection Editor)和工具節點(Utility nodes)、創建自制的著色網絡(Custom Shading Networks)的深層理解。
第一步:
在 Hypershade 窗口裡,選擇 Create->Create Render Node.. 分別創建下列節點:
Material nodes:
Blinn (no Shading Group) (無著色系)
Surface Shader (with Shading Group) (有著色系)
Texture nodes:
Ramp (no Texture Placement, Normal) (無貼圖坐標)
Utility nodes:
Sampler Info
Clamp
Condition
在 Hypershade 中應該如圖:
Blinn 材質節點用於描繪物體上的高光。因為Ramp 可以將灰階值重新分布成連續的色彩,會使灰階 blinn 變成卡通效果。Sampler info 節點獲取物體邊界的信息。
02第二步:
在 Hypershade 窗口裡,鼠標中鍵拖動Blinn1節點至Clamp1 節點上釋放,選 Other… ,彈出連接編輯器 (Connection Editor)窗口,
將左邊 Blinn1 節點的 Outcolor 與 Clamp1 節點的 Input 相連。
03接下來,讓Clamp1 節點降低灰階值,使這些值小於等於1(<=1),同時會切斷所有灰階大於1(>1)的高光。(superwhite)。
開啟 Clamp1 節點的屬性編輯器(Attribute Editor),將 Max 左邊的輸入框設為1。這個輸入框代表紅色通道(中間=綠色,右邊=藍色),
由於灰色是R,B,G各相等值混合而成的,所以,在此只需要一個通道就可以了。 Min 應設為0。
04第三步:
以上述方法,用連接編輯器,將 Clamp1 節點的 Output R 與 Ramp1 節點的 V coord 相連。
05請確保 Ramp1 節點的 Type 為 V Ramp。現在Ramp1 的 color output實際上等於 Input 的灰階值(0<= clamp1 Color R Output <=1)。
這種方法稱為重繪(Remapping)。
[1] [2] 下一頁
06第四步:
將 Ramp1 節點的 Out Color 與 Condition1 節點的 Color If True (Color1) 相連。
將 Sample info1 節點的 Facing Radio 與 Condition
1 節點的 First Term 相連。
Facing Ratio 是表面上點面向攝影機的角度,如果這個點距離攝影機90度,Facing Ratio =0,
如果表面法線和攝影機射線之間角度是0,Facing Ratio=1。具體請查閱 Maya在線手冊
第五步:
開啟 Surface shader1 的屬性編輯器。選 Add->Add Attributes… 添加下列屬性(float,scalar):
LineThickness: Min 0, Max 1, Default .2
LineR
LineG
LineB
LineThickness和顏色都屬於用戶可定(user-definable)的。
07第六步:
將 Suerface shader1 節點的 LineThickness 與 Condition1 的 Second Term 相連。
Suerface shader1 節點的 Line R 與 Condition1 的 Color If False (Color2 R) 相連。
Suerface shader1 節點的 Line G 與 Condition1 的 Color If False (Color2 G) 相連。
Suerface shader1 節點的 Line B 與 Condition1 的 Color If False (Color2 相連。
將 Condition 的Operation 設為 Greater Than。
08如果 Facing Ratio (condition1的第一個條件)小於 LineThickness (第二條件),Condition1 的Output = Color2 (surface shader1裡
設置的LineRG,否則 Output = Color1 (來自ramp1-blinn1 的顏色)。
將 Condition1 節點的 Out Color 與 Surface shader1 節點的 Out Color相連。
下圖是 Hypershade 中的節點關系:
09第七步:
可以把 Ramp1 調成你喜歡的色彩。卡通材質通常把 Ramp 顏色之間的 Interpolation 設為 None,這樣能產生較為均勻的邊線。下圖為 Ramp1
最終的外觀。
此外,也可以做一些額外的修改:
1.在surface shader1 屬性編輯器裡調整Line Thickness 和 colorRGB,這兩個值分別控制邊線的粗細和顏色。
2.調節 blinn1 參數能產生不同的高光。
3.甚至可以給 Blinn1 添加一個凹凸貼圖,這種方法一般用於運動的小蟲。
4.也可用其他的材質代替 Blinn1 ,產生各式各樣高光。
總結:
本課闡述了如何創建卡通材質,通過這一課的學習,掌握了創建卡通著色技術,同時也對各種節點之間工作原理及建立
復雜的著色網絡有了更
加清楚地認識。