【轉載】Unity3d | ShaderGraph入門教程

 

Shader一直是Unity開發者的一個難關,涉及到數學、圖形學、shader語法等多個難題。不過,ShaderGraph來拯救你了!Unity2018的一個重磅功能是ShaderGraph,通過可視化界面拖拽就可以實現着色器的創建和編輯。

shadergraph可視化界面

配置使用ShaderGraph

目前最新版本Unity(2019.1)中的Shader Graph正式版只支持Lightweight Render Pipeline,預覽版支持HD Render Pipeline,後續也會支持自定義的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

如果是新建工程,在新建工程時選擇Lightweight RP或者Hight-Definition RP模板,工程中會自動包含ShaderGraph及其依賴的功能包。

Lightweight RP和Hight-Definition RP是Unity新加入的兩種可編程渲染管線,目前我們不用過多瞭解,知道如何使用即可。主要區別是:

  • Lightweight RP適用於移動端等性能有限的平臺,發揮出最好的渲染效果
  • Hight-Definition RP適用於PC或遊戲主機等計算性能好的平臺,目前基本不支持移動平臺

在已有工程中使用ShaderGraph

1、在已有工程中使用ShaderGraph需要手動安裝安裝Render Pipeline和ShaderGraph相關的包。

有兩種方式:
1)在菜單欄Window > Package Manager打開Packages窗口。需要安裝Shadergraph包和Lightweight RP包。

HDRP目前還未脫離預覽版,如果想測試HDRP(高畫質,主要用於PC和遊戲主機),需要在上方Advanced下拉菜單中選擇Show preview packages後,纔會在列表中顯示High Definition RP包。

 

2)通過手動設置Unity工程下Packages/manifest.json文件

manifest.json

目前通過Package Manager只能下載最新版本的包,而通過manifest文件可以設置使用任意版本的包。如果有時候新版本的包和Unity版本不兼容的話,可以通過manifest文件回退到之前的舊版本。

【常見問題1】Package Manager界面左下角一直在Loading怎麼辦?

這是由於國內的網絡原因,通常切換網絡即可解決。比如使用寬帶無法加載出來時,可以嘗試切換到4G/5G手機熱點,如果再不行可以嘗試翻牆。

大智這邊切換到聯通4G熱點是可以刷新出來的。

【常見問題2】已有工程切換到LWRP/HDRP後材質都變成洋紅色怎麼辦?

在菜單欄Edit > Render Pipeline > Lightweight Render Pipeline > Upgrade ...可自動更新工程中的材質。但是隻能更新Unity自帶的Shader,自定義Shader需要自己修改哦。

2、創建設置SRP(可編程渲染管線)

1)菜單欄Assets > Create > Rendering>Lightingweight 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如何實戰應用。



作者:鄭洪智_技術探路者
鏈接:https://www.jianshu.com/p/d0b3f87f84ca
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

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