學習目標
理解像素處理器的運行原理,學習編基本函數的方法,把用戶導入的圖片在不使用外部節點的情況下直接變形。
學習量大累的函數和方案。
1. 歸屬於 Graph 的普通函數定義和函數的顯示
2. 非歸屬於 Graph 的 (所屬 Node 的) member 函數定義和使用。
歸屬於 Graph 的普通函數定義和函數的顯示
非歸屬於 Graph 的 (所屬 Node 的) member 函數定義和使用
這個是從 Substance designer 2019 版本以上的版本開始支持的功能。
簡單看下案例,並摸索下使用方案。
案例是製作 Custom Blend node 。
我們來了解下 Input Value 。
這次案例會使用 Pixel Processor ,基本用法前面已經學過了。
一個個跟着做,實現 Custom Blend node。
先對 Blend 定義。
這是爲了讓輸入的圖片可以合成。
可以用多個合成公式做出結果,但是這次案例就用以下形式吧。
// Precise method, which guarantees i = i1 when w = 1.
//i is input image, w is blend weight
float lerp(float i0, float i1, float w) {
return (1 - w) * i0 + w * i1;
}
做 Pixel processor 並添加 Input Value,變量名稱是 w 。
進到 Pixel processor 編輯窗,如上圖製作2個 input sampler Color ,添加一個 Get Float 後輸入的變量變更爲 #w 。
用 Frame 套上,並寫上要實現的算法也可以。
先做出 (1-w) * i0 部分的結構。
添加固定常數 Flaot ,數值變爲 1。
添加 Subtract 後固定常數 1 輸出成 #w 。
添加 Scalar Multipication ,在 A port 連接 input 0 ,把剛纔的 (1-w) 部分連接到 Scalar port。
暫時從函數編輯窗口離開,在 Graph 上製作如上圖的兩個 Uniform Color ,都連到 Pixel Processor 。
再回到 Pixel Processor 編輯窗口,用 input 1 變更第二次做的 Sampler 輸入變量。
添加 Scalar Multification , #w 如上圖連接。
這是整個數式的 w * i1 部分。
根據 return (1 - w) * i0 + w * i1; 數式,加法最後做就可以了,所以 add 最後添加。
最後用 (1 - w) * i0 實現的部分 w * i1 用 add node 加上就可以了。
別忘了, add node 要用 Set as Output Node 定義。
但是仍然沒有變化。
現在到了使用 Input Value 的時候。
在 Graph 添加一個 Input Value 。
Input Value 值變更爲 0並連接上了。
Input Value 是對入到 #w member變量的值。
而且 w 是權重值,如果還是紅色那就是正常啓動了。
爲了確認,來把權重也就是 Input Value 值變更爲 0.25 吧。
紅色和綠色在用權重值混合。
確認結果是否如上圖。
權重是(w) 1 的時候出現完整的綠色纔行。
現在稍微擴展。
也可以使用 Mask 。
修改以上的學習內容,並添加 Mask 。
在 Weight 擴展 Mask 。
最終結果案例。
Mask 擴展需要 $pos 內含變量。
Uniform Color 雖然都是單一顏色,但 Mask 要理解成其他顏色或者以濃度組成的像素的組合。會需要像素的 XY 位置信息。
添加一個 Gradient Linear 1 ,然後追加連接到 Input 2 上。
用於 Mask Texture 的 Node 要連接到 Pixel Processor 的 Input 2 上。
添加 Get Float2 後,在內含變量中選擇 $pos 。
然後再添加一個 Sampler ,輸入變量變更爲 input2 。
乘與 #w 和添加的 Mask 輸入部分。
w * i1 部分也修改成 (w*maks)*i1 的形態。
完成的函數。
再加強以上函數。
現在輸入的兩個 Uniform Color 是的單一顏色,所以不需要 $pos 。
考慮輸入的 Input 0 和 Input 1 是普通貼圖的情況,都添加 $pos 來測試吧。
權重 Weight 設成 1的情況下 Mask 替換成了 Checker 1 ,這是兩個輸入圖片也都替換成了貼圖後確認的結果。
Related tutorial
About JP
鏈接: Website.
在這裏插入圖片描述
出生在韓國的TA。
1997年開始從事電腦圖形視覺化工作後,在這個行業已經有21年經驗了。
在多個網絡遊戲公司引領過美術團隊,之前在allegorithmic擔任TA負責人,在中國網易盤古工作室擔任TA總監,現在是巨人網絡TA部門的總負責人。
懶惰的人才有創意”是他堅信並執行的哲學道理。