本文首發于“洪流學堂”微信公眾號。
洪流學堂,讓你學Unity快人幾步。你好,我是你的技術探路者鄭洪智,你可以叫我大智(vx: zhz11235)。
洪流學堂公眾號回復節點
,獲取ShaderGraph節點詳解PDF文件(帶目錄)。
Shader一直是Unity開發者的一個難關,涉及到數學、圖形學、shader語法等多個難題。不過,ShaderGraph來拯救你了!Unity2018的一個重磅功能是ShaderGraph,通過可視化界面拖拽就可以實現著色器的創建和編輯。
配置使用ShaderGraph
目前最新版本Unity(2019.3)中的Shader Graph正式版支持URP(原LWRP)和HDRP,自定義的pipeline需要自行實現一些節點。
在Unity 2018后,Unity采用了PackageManager來管理Unity的眾多新功能,包括Shader shader包和Lightweight Render Pipeline包。
1、下載最新的Unity(建議2019.1及以上版本),建議通過UnityHub安裝,下載地址是:
MAC:https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.dmg
Windows:https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.exe
2、安裝Lightweight Render Pipeline和ShaderGraph包。
在新工程中使用ShaderGraph
如果是新建工程,在新建工程時選擇Universal Project Template或者Hight-Definition RP模板,工程中會自動包含ShaderGraph及其依賴的功能包。
URP和Hight-Definition RP是Unity新加入的兩種可編程渲染管線,目前我們不用過多了解,知道如何使用即可。主要區別是:
- URP適用于所有平臺
- Hight-Definition RP適用于PC或游戲主機等計算性能好的平臺,對畫質要求很高的畫選這個,目前基本不支持移動平臺
在已有工程中使用ShaderGraph
1、在已有工程中使用ShaderGraph需要手動安裝安裝Render Pipeline和ShaderGraph相關的包。
有兩種方式:
1)在菜單欄Window > Package Manager打開Packages窗口。需要安裝Shadergraph包和Universal RP包(2019.3之前叫Lightweight RP)。
2)通過手動設置Unity工程下Packages/manifest.json文件
目前通過Package Manager只能下載最新版本的包,而通過manifest文件可以設置使用任意版本的包。如果有時候新版本的包和Unity版本不兼容的話,可以通過manifest文件回退到之前的舊版本。
【常見問題1】Package Manager界面左下角一直在Loading怎么辦?
這是由于國內的網絡原因,通常切換網絡即可解決。比如使用寬帶無法加載出來時,可以嘗試切換到4G/5G手機熱點,如果再不行可以嘗試翻墻。
大智這邊切換到聯通4G熱點是可以刷新出來的。
【常見問題2】已有工程切換到URP/HDRP后材質都變成洋紅色怎么辦?
在菜單欄Edit > Render Pipeline > Universal Render Pipeline > Upgrade ...
可自動更新工程中的材質。但是只能更新Unity自帶的Shader,自定義Shader需要自己修改哦。
2、創建設置SRP(可編程渲染管線)
1)菜單欄Assets > Create > Rendering>Universal Pipeline Asset,會創建出來一個文件,這是渲染管線的配置文件。
2)在菜單欄 Edit > Project Settings > Graphics中設置剛才的SRP文件
經過這些設置,現在就可以開始使用ShaderGraph了!
創建ShaderGraph文件
通過菜單欄 Create > Shader > *** Graph 可以創建ShaderGraph文件,會在Project創建一個graph文件。
PBR Graph PBR圖
Sub Graph 子圖,用于創建一些可復用的節點
Unlit Graph 不受光照的圖
ShaderGraph窗口
我們先創建一個PBRGraph來看一看。雙擊graph文件即可打開ShaderGraph窗口。
ShaderGraph的圖是以節點和連線組成的,默認創建出來會有一個Master Node(主節點)。你可以通過把其他節點連接到Master Node來創造你想要的效果。
編輯節點的屬性
如下圖所示,你可以通過編輯默認的數值快速改變物體的表面屬性。
添加節點
添加紋理和其他復雜的交互操作,只要右鍵點擊并選擇“Create Node”。
連接節點
通過拖拽對應的值即可創建連線。
創建輸入變量
一個shader當然必不可少要有輸入的變量了,這在ShaderGraph中也很簡單。
使用輸入變量
你可以給輸入變量設置一個默認值,方便調試。
在Graph中使用這個變量也很簡單,只需要將變量拖入圖中,和其他節點創建連線即可。
自定義預覽模型
ShaderGraph右下角有一個預覽窗口,可以選擇內置的5種和自定義的模型來更好的預覽Shader的效果。
材質球使用Shader
Shader調好以后,當然最最終要應用到材質球上。材質球的Shader選擇菜單中會多出一個graphs的類別,下面就是你創建的ShaderGraph對應的shader。
總結
本文講了如何配置、創建、編輯、使用ShaderGraph。后面幾天我將通過實例的方式講解ShaderGraph如何實戰應用。
洪流學堂公眾號回復節點
,獲取ShaderGraph節點詳解PDF文件(帶目錄)。