前言
最近在做一个电力的项目,里面需要用到一个身体触电的特效,网上找了一圈都没有合适的,最后干脆自己写一个,参考了一个ShaderGraph的效果,原理都一样。文章来源:https://www.toymoban.com/news/detail-457894.html
原理
首先是简单分析下电脉冲的原理,电脉冲的效果一般是一个电流圈,然后电流全根据UV的流动在物体表面来回流动。这个电流圈的流动,我参考了这篇文章:https://zhuanlan.zhihu.com/p/434845765
只需要两张扰动图,以一个固定速度交错流动,然后叠加到一起,这样我门就得到了一个不断变化的新的扰动图,然后我们使用Remap节点把他的颜色数值从[0,1]映射到[-10,10],然后再通过节点Rectangle来输出我们要的电流圈。
Remap:将原图进行了重映射,将一个A范围重映射到另一个范围,用来控制减弱or加强图像的输出范围
Rectangle:函数:根据输入的UV生成一个指定大小/宽度的矩形,感觉原理上有点类似于截止滤波?
补充
这里有两个NoiseTex节点,使用的是同一张贴图,所以,我使用了一个TextureObject节点,作为贴图输入节点,然后把Tex赋值给这两个NoiseTex,可以文章来源地址https://www.toymoban.com/news/detail-457894.html
到了这里,关于Unity 之ASE实现触电,电流,电脉冲效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!