Unity3d | ShaderGraph入門教程

本文首發(fā)于“洪流學(xué)堂”微信公眾號。
洪流學(xué)堂,讓你學(xué)Unity快人幾步。你好,我是你的技術(shù)探路者鄭洪智,你可以叫我大智(vx: zhz11235)。

洪流學(xué)堂公眾號回復(fù)節(jié)點(diǎn),獲取ShaderGraph節(jié)點(diǎn)詳解PDF文件(帶目錄)。

Shader一直是Unity開發(fā)者的一個(gè)難關(guān),涉及到數(shù)學(xué)、圖形學(xué)、shader語法等多個(gè)難題。不過,ShaderGraph來拯救你了!Unity2018的一個(gè)重磅功能是ShaderGraph,通過可視化界面拖拽就可以實(shí)現(xiàn)著色器的創(chuàng)建和編輯。

shadergraph可視化界面

配置使用ShaderGraph

目前最新版本Unity(2019.3)中的Shader Graph正式版支持URP(原LWRP)和HDRP,自定義的pipeline需要自行實(shí)現(xiàn)一些節(jié)點(diǎn)。

在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

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

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

  • URP適用于所有平臺
  • Hight-Definition RP適用于PC或游戲主機(jī)等計(jì)算性能好的平臺,對畫質(zhì)要求很高的畫選這個(gè),目前基本不支持移動平臺

在已有工程中使用ShaderGraph

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

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

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

manifest.json

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

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

這是由于國內(nèi)的網(wǎng)絡(luò)原因,通常切換網(wǎng)絡(luò)即可解決。比如使用寬帶無法加載出來時(shí),可以嘗試切換到4G/5G手機(jī)熱點(diǎn),如果再不行可以嘗試翻墻。

大智這邊切換到聯(lián)通4G熱點(diǎn)是可以刷新出來的。

【常見問題2】已有工程切換到URP/HDRP后材質(zhì)都變成洋紅色怎么辦?

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

2、創(chuàng)建設(shè)置SRP(可編程渲染管線)

1)菜單欄Assets > Create > Rendering>Universal Pipeline Asset,會創(chuàng)建出來一個(gè)文件,這是渲染管線的配置文件。

2)在菜單欄 Edit > Project Settings > Graphics中設(shè)置剛才的SRP文件

經(jīng)過這些設(shè)置,現(xiàn)在就可以開始使用ShaderGraph了!

創(chuàng)建ShaderGraph文件

通過菜單欄 Create > Shader > *** Graph 可以創(chuàng)建ShaderGraph文件,會在Project創(chuàng)建一個(gè)graph文件。

PBR Graph PBR圖
Sub Graph 子圖,用于創(chuàng)建一些可復(fù)用的節(jié)點(diǎn)
Unlit Graph 不受光照的圖

ShaderGraph窗口

我們先創(chuàng)建一個(gè)PBRGraph來看一看。雙擊graph文件即可打開ShaderGraph窗口。

ShaderGraph的圖是以節(jié)點(diǎn)和連線組成的,默認(rèn)創(chuàng)建出來會有一個(gè)Master Node(主節(jié)點(diǎn))。你可以通過把其他節(jié)點(diǎn)連接到Master Node來創(chuàng)造你想要的效果。

編輯節(jié)點(diǎn)的屬性

如下圖所示,你可以通過編輯默認(rèn)的數(shù)值快速改變物體的表面屬性。

修改節(jié)點(diǎn)屬性

添加節(jié)點(diǎn)

添加紋理和其他復(fù)雜的交互操作,只要右鍵點(diǎn)擊并選擇“Create Node”。

創(chuàng)建節(jié)點(diǎn)

連接節(jié)點(diǎn)

通過拖拽對應(yīng)的值即可創(chuàng)建連線。

創(chuàng)建輸入變量

一個(gè)shader當(dāng)然必不可少要有輸入的變量了,這在ShaderGraph中也很簡單。

創(chuàng)建輸入變量

使用輸入變量

你可以給輸入變量設(shè)置一個(gè)默認(rèn)值,方便調(diào)試。

給輸入變量設(shè)置默認(rèn)值

在Graph中使用這個(gè)變量也很簡單,只需要將變量拖入圖中,和其他節(jié)點(diǎn)創(chuàng)建連線即可。

使用輸入變量

自定義預(yù)覽模型

ShaderGraph右下角有一個(gè)預(yù)覽窗口,可以選擇內(nèi)置的5種和自定義的模型來更好的預(yù)覽Shader的效果。

自定義預(yù)覽模型

材質(zhì)球使用Shader

Shader調(diào)好以后,當(dāng)然最最終要應(yīng)用到材質(zhì)球上。材質(zhì)球的Shader選擇菜單中會多出一個(gè)graphs的類別,下面就是你創(chuàng)建的ShaderGraph對應(yīng)的shader。

總結(jié)

本文講了如何配置、創(chuàng)建、編輯、使用ShaderGraph。后面幾天我將通過實(shí)例的方式講解ShaderGraph如何實(shí)戰(zhàn)應(yīng)用。

洪流學(xué)堂公眾號回復(fù)節(jié)點(diǎn),獲取ShaderGraph節(jié)點(diǎn)詳解PDF文件(帶目錄)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容