利用放射渐变制作简单的能量脉冲效果。
偶尔看到冲击波的效果,突然想UE4里面怎么实现。
最后想到RadialGradient(反射渐变&圆形渐变)这个节点可能符合要求。
鼓捣了下大概弄出了这样的结果:
其大体思路是制作出一个移动的圆环遮罩,实现之后。可以干很多事情,比如加上马赛克效果
:
将值连入位置偏移
效果略显鬼畜
当然还可以搭配透明或者溶解效果,实现物体炫酷登场的感觉,大家可以一一尝试,就不多说了。
下面是完整材质和分析
完整材质节点如下:
接下来分部分来解析。
首先
这种地形扫描效果需要世界位置作为UV而不是空间位置,那么就需要使用WorldPosition这个节点,Mask出RG通道作为UV。
但是如果仅用世界坐标当作UV,圆圈的中心永远只能以世界原点为依据,考虑到一般是以玩家作为中心扩散,这里减掉CameraPositon,让玩家成为坐标中心。然后除以一个数值,控制uv值。
接下来(黄框部分)重点
我们来制作圆环,使用RadialGradient节点,这个节点会生成一个圆形黑白渐变图效果如下
那么,如何产生圆环?想像一下,用1-节点,对这个输出图进行处理,
我们获得:
然后两者再相乘,
当当圆环搞定中radius可以决定圆环的宽度,而density可以决定圆环的对比度。
然后,制作动态扫描效果(红框部分)
这里我一开始用的time+sine组合,但是有个问题··他会来回波动,使用clamp或者abs都不理想(怎么样都会有一个波动)
所以考虑了time加上Frac(去整),这样time的值整数部分会被抛弃掉,而小数会从0~0.99999然后0~0.999999·循环,这样radius就会扩散出去而不是来回波动了。
最后
常规调色操作,就不赘述了。
完毕。