URP | 特效溶解效果
实现效果
效果

需求
溶解效果,溶解有单独的边缘,边缘可以控制指定颜色。
制作方法
创建属性变量,

声明变量

顶点着色器计算UV信息

片元着色器,

这里使用Lerp 控制原图颜色,一个是边缘的颜色。根据什么计算
使用Step 使用溶解贴图的R通道,和边缘大小,计算出边缘的颜色。
全代码
总结
Lerp函数,这次是使用线性插值函数,上次使用这个函数当开关使用。
clip函数 参数小于0的像素点直接丢弃掉
一般使用到溶解效果。

上面是基础的溶解效果,那我们在上面的基础增加细节。
扩展1 : 软溶解
效果
新的溶解和上面的原始效果对比。


需求
扭曲效果,溶解效果,溶解需要软溶解,带边缘颜色。
可以切换不同叠加模式,不同通道,正确使用。
粒子系统Custom可以控制UV和溶解效果。
制作扭曲
创建扭曲贴图属性

计算扭曲的效果。扭曲需要UV移动效果。
输入扭曲贴图的数据,计算扭曲的效果
把扭曲贴图计算出的UV信息增加到 主贴图的UV
切换 主贴图的R通道和A通道
溶解制作
输入溶解的变量信息
输入变量的属性

加载溶解贴图
使用Custom控制溶解方式
计算溶解
计算溶解,
dis_edge 是计算软溶解的范围
这俩个有什么区别

上面也增加了,控制边缘的方式。

一个是边缘厚度,一个是边缘颜色。

溶解部分完成
粒子系统控制
第一 控制UV方向,我们在顶点结构体里输入 UV信息
在顶点着色器阶段,输出到片元着色器,这里我们只是使用这个数据。
控制UV的方式
这里我们使用 第二套UV的,x通道和时间来控制UV的移动。
第二 部分是控制溶解
这样就有俩个开关,
如果不知道怎么使用,看前面的

URP | 粒子系统Custom自定义数据控制UV
代码
效果

总结
扭曲效果的实现,是一张图的单通道去影响UV的数值实现的。这里只是读取扭曲贴图的单通道

扭曲就是去改变原本图的UV信息
溶解效果,上面使用的是clip函数 小于0的像素就删除掉
软溶解的效果是使用 saturate()函数 这个函数返回是 0-1 范围的颜色值。

如果_Custom_Dis的值输入原大,计算越小。 白到透明变化。
另一个函数是使用Smoothstep()函数

扩展 smoothstep函数
需要输入3个变量,控制A和B的平滑过渡。
ret smoothstep(a, b, x)
可以用来生成0到1的平滑过渡.

粒子系统Custom Data属性
这样的方式是可以动态的去控制材质属性。原来如果动态控制,就给单独属性做动画。
