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

效果如图

  1. 准备工作--

在hdr模式下,关闭Directional Light ,相机设置

移动球挂一个点光源作为子节点,设置自行调节

0.创建移动球的材质及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

为了让移动球看起来发光,我们需要应用光晕后期效果

Create/GameObject / Volume / Global Volume

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

URP设置

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

  1. 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,它默认使用立方体。让它使用我们的粒子材料。

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

shader设置

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

代码控制效果:

    [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创建自发光闪烁 效果

猜你喜欢

转载自blog.csdn.net/zhuangjialo/article/details/129468599
HDR
今日推荐