Unity效果篇-01-光波特效
2023-01-26 20:30 作者:Lucas_dudu | 我要投稿
原理是通过深度衰减来处理想要的效果。
特殊节点
Depth Fade :深度衰减
Screen Position:屏幕坐标
这里就以ASE为例:
首先要先创建一个shader ,设置为不受光照材质,减少不必要的poss和变体。

材质属性,关闭双面显示,深度写入,RGB混合模式改为叠加。

新建节点Depth Fade ,深度渐变。

添加半透明渲染队列Queue,修改模式Transparent 。

新建材质球materials并选中所建的shader;
新建空场景,添加几个模型方便测试。

把新建的materials添加到球形mesh(Sphere)上。

OneMinus反向会得到一个黑色的球体,但是会有一些大于一的溢值,所以需要用到saturate前置来限制到0-1的空间,用浮点值来控制深度的范围。

放大球的scale就会得到一个扩散的扫光。

你也可以乘以一个颜色和贴图

但是这样放大你会发现有一个问题,他的uv 也会变大。

所以我们需要根据屏幕空间缩放大小,用screen position来计算屏幕位置,componentmask来划分XY屏幕坐标,得到的结果*二维向量,这个是屏幕的比例,加入个,你的贴图tiling就已经不起作用了,通过二维向量来调整。


这样你就可以随心所欲的调整自己想要的效果了。
可以给小球做动画,设置时间触发,就会得到扩散的扫光效果。