Unity版本:2022.3.45fc1

原理

用Power节点来控制射线纵向的衰减,用Voronoi节点让射线产生波动感。

前期准备

打开一个2D的URP项目,添加全局体积,在Profile中设置泛光效果,具体步骤参考我的往期博客

添加一个空物体,在右键打开的菜单中选择Effects->Line,添加一个射线渲染器。(或者添加Component:Line Renderer)

如下图,可以控制射线的位置和宽度。




创建一个Sprite Lit Shader Graph,并创建相应的Material。




Shader Graph编辑

射线形状

将Blending Mode设置为Additive。




我们需要构造一条横向的,中间颜色深,两边颜色浅的射线,因此创建一个uv节点,只取他的第二个维度。

如图所示,用Power节点来进行纵向的衰减




我们用外部变量EdgeSmooth传递给指数来控制光线的边缘光滑度,对于中间部分的宽度,我们依然可以用一个Power节点来控制,然后将指数设置为外部变量LaserThickness。




用一个HDR颜色来与其相乘,传给Base Color节点,就可以得到最初的效果。




噪声扰动

我们利用Time节点和Voronoi节点,可以产生随时间变化的扰动效果。

添加外部变量LaserSpeed来控制变化速度。

如果需要修改细胞的亮度,可以用Remap节点来设置

与上面的颜色相乘,传给Base Color,得到最终结果。




下载链接

Laser.shadergraph