跳转至

2.2 粒子系统

描述

粒子系统在游戏影视行业有广泛的应用,主要被用来制作各种常见的特效。例如:雨,雪,火,爆炸,水花,落叶等等都可以使用粒子系统很快的实现。而我们IdeaVR2021的粒子系统就是Particle和CPUParticle。

imageCover

Particle是基于GPU的3D粒子发射器,用于创建各种粒子系统和效果的3D粒子节点。Particles具有发射器,该发射器以给定的速率生成一定数量的粒子。

!!! 注意:

Particles仅在使用GLES3渲染器(效果优先)时有效。如果使用GLES2渲染器(性能优先),请改用CPUParticles。

CPUParticle基于CPU的3D粒子节点用于创建各种粒子系统和效果。

CPUParticle提供了与硬件加速相同的功能,但可能无法在较旧的设备上运行。但是如果需要在Html5模型下运行,就只能使用此粒子。

!!! 注意:

CPUParticle与Particle不同,可见包围盒是即时生成的,不需要用户另外配置。

(Particle)GPU粒子系统属性说明

发射

imageCover

勾选启用之后,粒子效果开始发射。

数量

imageCover

!!! 注意: 更改数量将重置粒子发射,因此请在更改数量之前清除所有已经发射的粒子。

时间 - 生命周期: 每个粒子存在的时间(以秒为单位)。 - 执行一次: 启用之后,该粒子只会发射一次,生命周期结束之后自动结束发射。 - 速度比: 控制粒子整体发射速率的值,值为0时可以用于暂停粒子运动。 - 随机性: 让粒子发射的结果更加的随机。

绘制 注意:在“粒子”节点上工作后,记得先设定正确的粒子可见包围盒范围。否则,根据相机的位置和角度,粒子可能会突然消失。

imageCover

当淡黄色AABB包围盒不在相机视锥体可视范围内的时候,粒子会被剔除,所以在制作粒子效果的时候应该要注意这个问题。否则会导致在相机移动到一些视角的时候,粒子突然消失的问题。如下图所示:

imageCover

处理材质 - 处理材质 - 处理材质: 用于处理颗粒的材料。可以是ParticlesMaterial或ShaderMaterial。

  • 发射形状

    • 形状: 可以让粒子以多种不同的形状发射,形状类型包括(点,Sphere,平角,点,Directed Points)。
  • 朝向

    • 朝向: 粒子运动的方向。
    • 扩散度: 粒子向着朝向方向运动时的扩散程度。
    • 平整度: 控制粒子发射的平整程度,当值为1时,粒子会沿着直线移动。
  • 重力

    • 重力: 相当于给每个粒子加了一个有方向的重力。
  • 初始速度

    • 速度: 该速度值为粒子刚开始发射时的速度。
    • 速度随机率: 用来控制每个粒子初始速度的随机性。
  • 线性加速度

    • 加速度: 该值为粒子线性方向加速度值。
    • 加速度随机比: 用来控制每个粒子线性方向加速度的随机性。
    • 加速度曲线: 用来一条曲线来控制粒子线性方向的加速度。
  • 缩放

    • 缩放: 该值为控制粒子大小的缩放值。
    • 缩放随机率: 用来控制每个粒子缩放大小的随机性。
    • 缩放曲线: 用来一条曲线来控制粒子在生命周期内的缩放。
  • 颜色

    • 颜色: 该值为每个粒子的颜色值。
    • 颜色渐变: 可以用一张渐变贴图来让粒子在生命周期内根据贴图来变化颜色。
  • 动画

    • 速度: 该值控制粒子序列帧播放的速度。
    • 速度随机率: 给粒子粒子序列帧播放速度一个随机值。
    • 速度曲线: 通过一条曲线来控制粒子序列帧播放速度。
    • 偏移: 给粒子序列帧动画一个偏移值。
    • 偏移随机率: 给粒子序列帧动画一个随机的偏移值
    • 偏移曲线: 可以用一根曲线来控制粒子在生命周期内的动画偏移值。
  • 时间

    • 生命周期随机性: 该值用来为粒子生成一个随机的生命周期。

绘制通道 - 通道1:用来选择每个粒子的网格。

绘制材质 - 每个粒子的材质。可以是SpatialMaterial或ShaderMaterial。

CPU粒子系统属性说明

发射

imageCover

勾选启用之后,粒子效果开始发射。

数量

imageCover

注意: 更改数量将重置粒子发射,因此请在更改数量之前清除所有已经发射的粒子。

时间 - 生命周期: 每个粒子存在的时间(以秒为单位)。 - 执行一次: 启用之后,该粒子只会发射一次,生命周期结束之后自动结束发射。 - 速度比: 控制粒子整体发射速率的值,值为0时可以用于暂停粒子运动。 - 随机性: 让粒子发射的结果更加的随机。

绘制 - 网格: 用来选择每个粒子的网格。 - 绘制材质: 每个粒子的材质,可以是SpatialMaterial或ShaderMaterial。

imageCover

CPU粒子属性

  • 发射形状

    • 形状: 可以让粒子以多种不同的形状发射,形状类型包括(点,Sphere,平角,点,Directed Points)。
  • 朝向

    • 朝向: 粒子运动的方向。
    • 扩散度: 粒子向着朝向方向运动时的扩散程度。
    • 平整度: 控制粒子发射的平整程度,当值为1时,粒子会沿着直线移动。
  • 重力

    • 重力: 相当于给每个粒子加了一个有方向的重力。
  • 初始速度

    • 速度: 该速度值为粒子刚开始发射时的速度。
    • 速度随机率: 用来控制每个粒子初始速度的随机性。
  • 线性加速度

    • 加速度: 该值为粒子线性方向加速度值。
    • 加速度随机比: 用来控制每个粒子线性方向加速度的随机性。
    • 加速度曲线: 用来一条曲线来控制粒子线性方向的加速度。
  • 缩放

    • 缩放: 该值为控制粒子大小的缩放值。
    • 缩放随机率: 用来控制每个粒子缩放大小的随机性。
    • 缩放曲线: 用来一条曲线来控制粒子在生命周期内的缩放。
  • 颜色

    • 颜色: 该值为每个粒子的颜色值。
    • 颜色渐变: 可以用一张渐变贴图来让粒子在生命周期内根据贴图来变化颜色。
  • 动画

    • 速度: 该值控制粒子序列帧播放的速度。
    • 速度随机率: 给粒子粒子序列帧播放速度一个随机值。
    • 速度曲线: 通过一条曲线来控制粒子序列帧播放速度。
    • 偏移: 给粒子序列帧动画一个偏移值。
    • 偏移随机率: 给粒子序列帧动画一个随机的偏移值
    • 偏移曲线: 可以用一根曲线来控制粒子在生命周期内的动画偏移值。

总结

目前在我们IdeaVR2021中还是推荐大家使用Particle,如果没有打包H5版本的特殊需求,尽量不要使用CPUParticle。因为使用CPUParticle会产生大量的性能损耗,正常情况下应该尽量避免使用。