# 粒子系统

粒子属性与生命周期过程中的变化效果由系统ParticleSystem管理,其一版本代理到元素XRParticleSystem,对应在xml中的标签是xr-particle

# 在wxml中创建

首先声明资源节点,导入纹理, 用于描绘粒子的基本形态

<xr-asset-load type="texture" asset-id="particle-texture" src="path/to/texture.xxx" />

接下来在xml中通过xr-particle标签声明粒子节点,同时设置粒子系统的基本属性,例如

<xr-particle material="particle-mat" capacity="20" emit-rate="5" life-time="3" emitter-type="BoxShape" textre="particle-texture"></xr-particle>

# 粒子系统基本属性

影响粒子系统生命周期、初始色彩、初始体积等效果的相关属性介绍如下

名称 类型 备注 默认值 用例
angle number[] 粒子的起始角度,"最小值 最大值(可选)" [0, 0] angle="0 0"
angular-speed number[] 每秒钟粒子旋转的角度(单位:角度) [0, 0] angular-speed="0 0"
atlas Atlas 描绘粒子形态的纹理图集 atlas="particle-atlas"
atlas-frames string[] 指定纹理图集中的特定帧,以帧名的形式 atlas-frames="snow star"
atlas-loop boolean 决定纹理图集播放到最后一帧时是否循环 true atlas-loop="false"
atlas-random boolean 粒子的初始形态是否从纹理集中随机选择 false atlas-random="true"
atlas-speed number 粒子纹理的变化速度 1 atlas-speed="2"
burst-count number 粒子一次性喷射的粒子数量, 大于-1生效 -1 burst-count="5"
capacity number 容许同时存在的最多粒子数量 1 capacity="5"
delay number 延时启动粒子的秒数 0 delay="3"
emit-rate number 每秒钟允许生成的最多粒子数量 10 emit-rate="5"
emitter-type string 粒子发射器的类型 "PointShape" emitter-type="SphereShape"
emitter-props map 粒子发射器的属性, 搭配发射器类型使用 "" emitter-props="radius:1.5"
emitter-position number[] 粒子发射器的位置 (0, 0, 0) emitter-position="2 0 0"
end-color number[] 粒子生命周期结束时的颜色 [1, 1, 0, 1] end-color="1 1 0 1"
gravity number 粒子在y轴上每秒的运动距离 0 gravity="9.8"
life-time number[] 粒子的生命周期时长区间,"最小值 最大值(可选)" [1, 1] lifeTime="1 3"
render-mode string 粒子的渲染模式, 详见billboard模式介绍 “default" render-mode="stretched"
size number[] 粒子的大小,"最小值 最大值(可选)" [0.3, 0.3] size="1"
speed number[] 粒子的速度大小,"最小值 最大值(可选)" [1, 1] speed="1 1"
start-color number[] 粒子初始颜色左区间 [1, 0, 0, 1] start-color="1 0 0 1"
start-color2 number[] 粒子初始颜色右区间 start-color2="1 1 0 1"
stop-duration number 粒子存在的总时长(单位:秒), 0表示永远存在 0 stop-duration="3"
texture string 描绘粒子形态的基本纹理 texture="particle-texture"
mesh string 以特定网格形态渲染粒子 mesh="cube"
use-noise boolean 是否对粒子运动轨迹启用噪声 false use-noise="true"
noise-texture string 采样的噪声纹理名(可选), 内置柏林噪声 noise-texture="noiseTexture"
noise-strength number[] 不同轴向上施加噪声干涉运动的力度(可选) [1, 1, 1] noise-strength="2 1 1"

注意:这里的属性类型指粒子系统内部对应的数据结构,在xml格式中按照用例的字符串形式输入即可,对应字符串转换规律如data-values中所示。