URP | 特效基础材质
效果
一个Shader实现俩种模式


需求
特效使用中使用一个Shader,设置不同叠加模式,
贴图有时候有Alpha通道,有时候没有。都需要正确显示。
特效Shader支持模型顶点透明度。
需要一个单独控制Bloom的参数,一个控制Alpha的数值
实现过程
叠加模式
第一个解决 在面板控制叠加模式的,创建俩个变量。这一个是unity自带的,

在叠加模式这里设置变量

同样的道理,下面的设置也可以同样方法制作。
注意 这里介绍一下,Tage 标签的作用
这个Shader 标签是有3个 第一个
这里Unity默认的层级顺序

显示Alpha通道
因为有时候特效在制作过程是有大量不带通道的黑底贴图,这样在Add模式是没有问题的。

在Alpha模式下是出问题的,所以在Shader上面设置一个开关让特效师制作过程,可以切换。


这里就是一个开和没有开的结果。
代码—创建一个开关类型

定义一个 宏变量

在片元着色器阶段
使用这个开关控制俩种状态切换
顶点透明度
因为在特效制作过程会调整模型的顶点Alpha的值。需要特效Shader支持,

在模型结构体输入 顶点颜色, 数据类型。
我们其实想要是顶点Alpha数据。输出到片元着色器
在顶点着色器传入片元着色器
在片元着色器阶段Alpha通道乘入Alpha
这里,只是使用最简单的特效Shader制作示范。
单独控制Bloom 和 Alpha的简单看代码就可以
使用
俩种叠加模式设置
Add 是 One SrcAlpha
Alpha 是 SrcAlpha OneMinusSrcAlpha
代码

