Particle Renderer

粒子渲染部分由 ParticleSystemRenderer 控制,ParticleSystemRenderer 分为 CPU 渲染器GPU 渲染器

CPU 渲染器通过一个对象池来维护所有粒子,根据粒子当前状态来生成对应的 vb、ib 数据,持有粒子需要渲染的材质,并且保存相关渲染状态。

GPU 渲染器目前是在 CPU 端生成粒子,只提交初始参数的 vb、ib 数据,但是模块相关的计算则是通过预采样数据的形式,初始化时提交一次数据,后续的模块系统则是在 GPU 端对数据进行提取模拟运算,减少 CPU 端的计算压力,目前不支持 TrailModule 和 LimitVelocityOvertimeModule,后续版本仍将持续对粒子系统进行优化改进。

渲染模块 - 图1

属性说明
RenderMode设置一个粒子面片的生成方式。
Billboard 粒子始终面向摄像机
StretchedBillboard 粒子始终面向摄像机,但会根据相关参数进行拉伸
HorizontalBillboard 粒子面片始终与 x-z 平面平行
VerticalBillboard 粒子面片始终与 Y 轴平行,但会朝向摄像机
Mesh 粒子为一个模型。
VelocityScaleStretchedBillboard 模式下,将粒子在运动方向上按 速度大小 进行拉伸。
LengthScaleStretchedBillboard 模式下,将粒子在运动方向上按 粒子大小 进行拉伸。
MeshRenderMode 设置为 Mesh 时,指定要渲染的粒子的模型。
ParticleMaterial用于粒子渲染的材质。
当使用 CPU 渲染器时,也就是不勾选 UseGPU 的情况下,材质使用的 effect 只能是 builtin-particle,不支持其它的 effect。
当使用 GPU 渲染器时,也就是勾选 UseGPU 的情况下,材质使用的 effect 只能是 builtin-particle-gpu,不支持其它的 effect。
TrailMaterial用于渲染粒子拖尾的材质,材质的 effect 只支持 builtin-particle-trail,不支持其它的 effect。
UseGPU是否使用 GPU 渲染器进行粒子的渲染,默认不勾选。
不勾选时,使用 CPU 渲染器 ParticleSystemRendererCPU 进行粒子的渲染。
勾选时,使用 GPU 渲染器 ParticleSystemRendererGPU 进行粒子的渲染。
AlignSpace粒子对齐方向空间,可选项包括 View(视角空间)、World(世界空间)和 Local(局部空间),默认使用视角空间。选择不同空间可以决定粒子初始方向:
选择 View 时,粒子网格的旋转方向将会跟随摄像机的视角方向;
选择 World 时,粒子网格的方向将会使用发射器所在节点的世界空间旋转方向;
选择 Local 时,粒子网格将会使用发射器所在节点的局部空间旋转方向。