URP | 特效基礎(chǔ)材質(zhì)
效果
一個Shader實現(xiàn)倆種模式


需求
特效使用中使用一個Shader,設(shè)置不同疊加模式,
貼圖有時候有Alpha通道,有時候沒有。都需要正確顯示。
特效Shader支持模型頂點透明度。
需要一個單獨控制Bloom的參數(shù),一個控制Alpha的數(shù)值
實現(xiàn)過程
疊加模式
第一個解決 在面板控制疊加模式的,創(chuàng)建倆個變量。這一個是unity自帶的,

在疊加模式這里設(shè)置變量

同樣的道理,下面的設(shè)置也可以同樣方法制作。
注意 這里介紹一下,Tage 標(biāo)簽的作用
這個Shader 標(biāo)簽是有3個 ?第一個
這里Unity默認(rèn)的層級順序

顯示Alpha通道
因為有時候特效在制作過程是有大量不帶通道的黑底貼圖,這樣在Add模式是沒有問題的。

在Alpha模式下是出問題的,所以在Shader上面設(shè)置一個開關(guān)讓特效師制作過程,可以切換。


這里就是一個開和沒有開的結(jié)果。
代碼—創(chuàng)建一個開關(guān)類型

定義一個 宏變量

在片元著色器階段
使用這個開關(guān)控制倆種狀態(tài)切換
頂點透明度
因為在特效制作過程會調(diào)整模型的頂點Alpha的值。需要特效Shader支持,

在模型結(jié)構(gòu)體輸入 頂點顏色, 數(shù)據(jù)類型。
我們其實想要是頂點Alpha數(shù)據(jù)。輸出到片元著色器
在頂點著色器傳入片元著色器
在片元著色器階段Alpha通道乘入Alpha
這里,只是使用最簡單的特效Shader制作示范。
單獨控制Bloom 和 Alpha的簡單看代碼就可以
使用
倆種疊加模式設(shè)置
Add ? ? ? ? 是 One ? ? ? ? ? ?SrcAlpha
Alpha ? ? ?是 ?SrcAlpha ? ? OneMinusSrcAlpha
代碼