unity shader可视化工具——Shader Graph
unity shader可視化工具——Shader Graph
- 前言
- 一、Shader Graph介紹
- 什么是Shader Graph?
- 二、Shader Graph安裝配置
- 1、新工程中使用Shader Graph
- 2、舊工程中使用Shader Graph
- 三、Shader Graph詳解
- 1、Shader Graph基本操作
- 2、Shader Graph窗口
- 3、Shader Graph節點
- 四、unity shader可視化工具比較
- Shader Graph、Shader Forge 和 Amplify Shader Editor
前言
使用Shader Graph來制作著色器具有簡化著色器制作過程和著色效果編譯顯示快的優點。當前,Shader Graph中支持通用渲染管線(URP,Universal Render Pipeline。unity2019.3以前的版本命名為LWRP)和高清渲染管線(HDRP,High Definition Render Pipeline。URP這種渲染管線性能消耗較低,能支持在手機端的的硬件性能消耗,幾乎適用于所有平臺,而Height Render Pipeline比較適合與PC端和計算性能較好的平臺。
ShadeGraph官方示例GitHub地址.
一、Shader Graph介紹
什么是Shader Graph?
Shader Graph是在Unity2018版本之后推出的一款可以實時通過可視化界面的節點連接來實現著色器的創建及編輯的可編程式渲染管線工具。在項目中使用該工具包前需要先安裝好,除此還應該安裝好對應的渲染管線工具包和創建及配置對應的渲染管線文件。
二、Shader Graph安裝配置
1、新工程中使用Shader Graph
方法一:
-
打開unity編輯器時,在創建項目時,選擇High Definition Render Pipeline或者Universal Render Pipeline任一模板來創建項目(使用哪種渲染管線根據自己的項目決定,通常大部分人使用Universal Render Pipeline居多)。這種方式創建出來的項目,打開后就能直接使用Shader Graph,不用再進行任何的配置。
-
新建Shader Graph的 Shader 文件
在項目資源中右鍵—Creat—Shader—X-Graph(分別是PBR Graph、Sub Graph、Unlit Graph),命名好創建的shader文件。
PBR Graph: PBR,基于物理的渲染
Sub Graph :子圖,用于創建一些可復用的節點
Unlit Graph :不受光照的,無光照的
-
打開Shader Graph編輯面板
雙擊使用shader Graph創建的shader文件就可以打開shader Graph的編輯面板,就能在面板中進行shader節點的操作了。
方法二:
- 創建工程
創建一個空的unity項目(默認的3D模板)。 - 安裝Shader Graph
在unity中,打開window—Package Manage,如果在Package Manages中找不到shader Graph,就在Package Manages中點擊Advanced—show Preview Packages等待加載后就能找到Shader Graph,點擊Install安裝即可。 - 安裝渲染管線
同樣在unity的Package Manage中找到High Definition RP或者Universal RP兩者任一渲染管線點擊Install安裝。 - 配置渲染管線
在unity中,右鍵—crate—Rendering—Universal Render Pipeline—Pipeline Asset(Forward Renderer),命名好該文件。
再Edit—Project Settings,在Project Settings中的Graphics中將剛才創建的SRP文件設置到這里來即可。
2、舊工程中使用Shader Graph
注意:為了避免項目出現不可逆錯誤,建議在更改項目前,先復制備份好原先的項目。
- 安裝Shader Graph和渲染管線包,以及配置。
根據上面新工程中方法二中的方式在unity Package Manage中安裝好Shader Graph和Universal RP(或者High Definition RP)。
創建Pipeline Asset,以及在Project Settings中的Graphics中設置SRP的配置文件即可。(詳細見上述新工程中方法二) - 升級材質
隨后,會發現場景中的材質都會變為洋紅色。
Edit—Render Pipeline—Universal Render Pipeline—upgrade project Materials to Universal RP Materials,等待轉換材質,完成后材質就恢復好了。
三、Shader Graph詳解
1、Shader Graph基本操作
創建節點:在空白區右鍵——creat Node(或者空格鍵),選擇自己想到的節點進行創建
復制節點:選擇要復制的節點ctrl+D 或者先ctrl+c,在ctrl+v
居中顯示節點:按F鍵
保存shader:ctrl+S 或者編輯器中的Save Asset
上下左右移動編輯器窗口視圖:按住鼠標中鍵移動
縮小編輯器窗口視圖:鼠標滾輪
創建屬性/節點后,在連接面板中拖出連接線到空白處松手,就能跳出該節點可以與哪些節點相連接
2、Shader Graph窗口
屬性窗口
myshader01是該shader名;
屬性名字:color為該屬性名(圖中第一個屬性名為color)是顯示在材質面板上的名字
expose:是否在材質面板中顯示該屬性
Reference:Reference中的命名是使用代碼來找到這個屬性的變量命,腳本中通過該變量名修改材質的屬性。
default:相當于屬性默認的值
mode:為貼圖默認的形式
Precision:為節點的精度
Main Preview窗口(預覽窗口)
在預覽窗口中,可以實時預覽shader效果。鼠標左鍵可以旋轉模型查看效果;右鍵可以更改效果顯示的模型,有默認的球狀、正方體膠囊體等還可以使用自定義的網格模型預覽。
PBR Master(基于物理渲染)
PBR (Physically Based Rendering,基于物理渲染),其中有兩種工作流(workflow),一種是Metakkic(金屬度),一個是Specular(高光)。Specular setup 和 Metallic setup 都會產生鏡面高光,金屬度只有明度的區別;高光顏色可以帶有其他的顏色。
3、Shader Graph節點
屬性節點
屬性使用工作流:創建屬性后,將屬性拖出編輯器中作為一個節點,連接到輸出接口使用
- Vector1
Mode:Default、slider(滑動條)、Integer(整數,只能讀取整數) - 多元向量Vector2,Vector3,Vector4
數值對應X、Y、Z、W - Color
Mode:Default、HDR
Texture 2D(U、V二維)
默認值為一張貼圖接口,可在編輯面板中直接賦予貼圖。Texture2D拖到面板中后,要與創建Sample Texture 2D節點連接(需要采樣貼圖信息),才能輸出。
Mode:White、Black、Grey、Bump(如果貼圖為法線貼圖需要將模式改為Bump) - Texture 2DArray 貼圖數組
幾張貼圖串在一起作為貼圖、序列幀貼圖 - Texture 3D(U、V、W三維)
需要創建Sample Texture 3D相連接 - Cubemap
需要創建Sample Cubemap節點進行采樣 - Boolean
用來控制開關Ture/False
其他節點
在Shader Graph編輯器中空白區右鍵——creat Node(或者空格鍵),選擇自己想要的節點進行創建。
四、unity shader可視化工具比較
Shader Graph、Shader Forge 和 Amplify Shader Editor
- Shader Graph屬于unity內置的著色器可視化的工具,因此會更加的簡便。并且有個說法叫既然官方有自己的shader可視化編輯器,那當然是用官方自己的了可視化編輯器了。
- Shader Forge 和 Amplify Shader Editor都是從資源商店就能獲取的unity 資源包,且不是free的。這兩者的功能都比Shader Graph多,體現在節點更多,因此可自定義的東西也會更加豐富。但目前Shader Forge已經停止更新包內容了(并且我自己試用該資源包的時候打開有報錯"實例化對象為null",導致無法打開Shader Forge的編輯器面板,具體如何解決這個錯誤還沒解決,不知道是不是就我這樣子,或許是版本不對應的問題 )。如果目前要在兩種中選一個的話,更加推薦使用Amplify Shader Editor。
- Shader Forge 和 Amplify Shader Editor這兩個都能通過節點連接的方式自定義光照模型,但Shader Graph就沒有能自定義光照模型,因為Shader Graph中沒有光照相關的節點,并且Shader Graph只有兩種一種PBR和無光照兩種shader模板。
- unity shader可視化工具在實現效果的時候是更加的快捷方便,很容易就出效果了。但是節點過多也會導致項目的性能變差,因此使用unity shader可視化工具來快速實現效果還是可以的,在實際項目中更加推薦手寫shader代碼。
- 別想著有shader可視化工具就可以不學習手寫shader代碼,如果不了解shader底層基礎知識,即使有節點式的shader可視化工具也是不會進行shader開發的。這就好比有shader可視化是開車,手寫代碼是走路,要說速度快肯定是開車;但說哪個起到運動作用還得是走路的方式。
總結
以上是生活随笔為你收集整理的unity shader可视化工具——Shader Graph的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB连接TF卡 SD卡硬件电路
- 下一篇: yum 安装mysql 启动_linux