欢迎光临散文网 会员登陆 & 注册

URP | 特效基础材质

2021-12-13 21:48 作者:那个人真狗  | 我要投稿

效果

  • 一个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

代码


URP | 特效基础材质的评论 (共 条)

分享到微博请遵守国家法律