Unity ShaderGraph2D射线效果
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,得到最终结果。
下载链接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Europa Superman 's blog!