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

Unity效果篇-01-光波特效

2023-01-26 20:30 作者:Lucas_dudu  | 我要投稿

原理是通过深度衰减来处理想要的效果。

特殊节点 

Depth Fade :深度衰减

Screen Position:屏幕坐标

这里就以ASE为例:

首先要先创建一个shader ,设置为不受光照材质,减少不必要的poss和变体。

unlit材质

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

材质球属性

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

深度渐变

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

添加渲染队列

新建材质球materials并选中所建的shader;

新建空场景,添加几个模型方便测试。

添加几个3dmesh

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

你就会发现这个场景都亮了

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

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

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

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

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

 这样你就可以随心所欲的调整自己想要的效果了。 

可以给小球做动画,设置时间触发,就会得到扩散的扫光效果。


Unity效果篇-01-光波特效的评论 (共 条)

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