Unity 粒子特效材质发光 HDR ShaderGraph图文教程

发布日期:2023-10-12

准备工作--在hdr模式下,关闭Directional Light ,相机设置移动球挂一个点光源作为子节点,设置自行调节

/static/simplydhruv.com/img/OWkzIg.jpg

.创建移动球的材质及shader

shader-->在Project / Create / Shader Graph/ URP / unlit shader graph;

双击新创建的shadergraph文件,在shadergraph编辑器中 右键new node 输入color。将color链接到fragment。color的mode选择HDR【点击颜色条可以增强或减弱HDR颜色,调整效果】; 新建一个材质点击inspector面板最上面的shader右侧edit按钮选择该shadergraph;再将这个材质替换移动球MeshRenderer的materials默认材质。


注意:保存shadergraph在编辑器左上角save asset

为了让移动球看起来发光,AG九游会需要应用光晕后期效果

Create/GameObject / Volume / Global Volume

在Hierachy面板中点击新建的global volume,设置如下图

/static/simplydhruv.com/img/xjQpvB.png

URP设置

找到urp配置文件,设置如下图防止 Unity 在每一帧都不必要地更新体积数据

/static/simplydhruv.com/img/sQwrvE.png

HDR粒子特效设定[类似火花粒子效果]

在移动球创建一个粒子子节点,

停用Looping和Play On Awake.

Start Lifetime值范围:0.5–1

Start Speed到 2–4

Start Size到 0.5。

改变Simulation Space值为World

Emitter Velocity Mode到Transform.

Emission模块的rate over time 值为0,rate over distance 值为0

Shape模块设置为cone,Angle值45 Radius值 0.5。

启用Color over Lifetime模块,从黄色到红色的颜色渐变,其 alpha 在两端设置为零,在 10% 时设置为 255。

启用Size over Lifetime模块,线性曲线从 1 下降到 0。

设置Mode模块的Renderer值为Mesh,它默认使用立方体。让它使用AG九游会的粒子材料。

shader-->在Project / Create / Shader Graph/ URP / unlit shader graph;还是无光照着色器

shader设置

/static/simplydhruv.com/img/WekCqG.png

intensity:在blackboard 增加了float属性命名为intensity.拉到编辑界面上。

/static/simplydhruv.com/img/EDqAGh.png

代码控制效果:

[SerializeField]

ParticleSystem pball;

[SerializeField]

int emisCount = 20;//控制每次弹跳生成多少粒子

//发射锥必须正确定位和旋转

void EmitGrow (float x, float z, float rotation)

{

ParticleSystem.ShapeModule shape = pball.shape;

shape.position = new Vector3(x, 0f, z);

shape.rotation = new Vector3(0f, rotation, 0f);

pball.Emit(emisCount);

}

未完待续,使用lit shadergraph创建自发光闪烁 效果

timeColorMat.SetFloat(timeOfLastHitId, Time.time);//代码激活

注意事项:自定义属性 设置timeOfLastHitId默认值-1000。emissioncolor设置hdr.

关联游戏: 易棋游戏