ParticleSystem

new Cesium.ParticleSystem ( options )

粒子系统管理粒子集合的更新和显示。
Name Type Description
options Object 具有以下属性的 可选 对象:
姓名 类型 默认 描述
show 布尔值 true 可选 是否显示粒子系统。
updateCallback ParticleSystem.updateCallback 可选 每帧调用的回调函数以更新粒子。
emitter 粒子发射器 new CircleEmitter(0.5) 可选 此系统的粒子发射器。
modelMatrix 矩阵4 Matrix4.IDENTITY 可选 将粒子系统从模型转换为世界坐标的 4x4 转换矩阵。
emitterModelMatrix 矩阵4 Matrix4.IDENTITY 可选 4x4 变换矩阵,用于在粒子系统局部坐标系内变换粒子系统发射器。
emissionRate 数字 5 可选 每秒发射的粒子数。
bursts Array.< 粒子爆发 > 可选 一个 ParticleBurst 数组,周期性地发射粒子群。
loop 布尔值 true 可选 粒子系统是否应该在完成时循环其爆发。
scale 数字 1.0 可选 设置在粒子生命周期内应用于粒子图像的比例。
startScale 数字 可选 在粒子生命开始时应用于粒子图像的初始比例。
endScale 数字 可选 在粒子生命结束时应用于粒子图像的最终比例。
color 颜色 Color.WHITE 可选 在粒子生命周期内设置粒子的颜色。
startColor 颜色 可选 粒子在其生命开始时的颜色。
endColor 颜色 可选 粒子生命周期结束时的颜色。
image 目的 可选 用于广告牌的 URI、HTMLImageElement 或 HTMLCanvasElement。
imageSize 笛卡尔2 new Cartesian2(1.0, 1.0) 可选 如果设置,覆盖以像素为单位缩放粒子图像尺寸的 minimumImageSize 和 maximumImageSize 输入。
minimumImageSize 笛卡尔2 可选 设置最小边界(宽度乘高度),超过该边界以随机缩放粒子图像的尺寸(以像素为单位)。
maximumImageSize 笛卡尔2 可选 设置最大边界(宽度乘高度),低于该边界以随机缩放粒子图像的尺寸(以像素为单位)。
sizeInMeters 布尔值 可选 设置粒子的大小是否以米或像素为单位。 true 的以米为单位的颗粒大小;否则,大小以像素为单位。
speed 数字 1.0 可选 如果设置,则使用此值覆盖 minimumSpeed 和 maximumSpeed 输入。
minimumSpeed 数字 可选 设置以米/秒为单位的最小界限,高于该界限将随机选择粒子的实际速度。
maximumSpeed 数字 可选 设置以米/秒为单位的最大界限,低于该界限将随机选择粒子的实际速度。
lifetime 数字 Number.MAX_VALUE 可选 粒子系统发射粒子的时间,以秒为单位。
particleLife 数字 5.0 可选 如果设置,则使用此值覆盖 minimumParticleLife 和 maximumParticleLife 输入。
minimumParticleLife 数字 可选 设置粒子生命的可能持续时间的最小界限(以秒为单位),超过该界限将随机选择粒子的实际生命。
maximumParticleLife 数字 可选 设置粒子生命的可能持续时间的最大界限(以秒为单位),低于该界限将随机选择粒子的实际生命。
mass 数字 1.0 可选 以千克为单位设置粒子的最小和最大质量。
minimumMass 数字 可选 设置粒子质量的最小界限(以千克为单位)。粒子的实际质量将被选择为高于此值的随机量。
maximumMass 数字 可选 以千克为单位设置粒子的最大质量。粒子的实际质量将被选择为低于此值的随机量。
Demo:

Members

一组 ParticleBurst ,周期性地发射粒子群。
Default Value: undefined
当粒子系统的生命周期结束时触发一个事件。

emissionRate : Number

每秒发射的粒子数。
Default Value: 5
用于此的粒子发射器
Default Value: CircleEmitter
在粒子系统局部坐标系内变换粒子系统发射器的 4x4 变换矩阵。
Default Value: Matrix4.IDENTITY
粒子生命结束时的颜色。
Default Value: Color.WHITE
在粒子生命结束时应用于粒子图像的最终比例。
Default Value: 1.0
用于广告牌的 URI、HTMLImageElement 或 HTMLCanvasElement。
Default Value: undefined

isComplete : Boolean

当为 true 时,粒子系统已达到其生命周期的终点;否则 false
粒子系统发射粒子的时间,以秒为单位。
Default Value: Number.MAX_VALUE
粒子系统是否应该在完成时循环它的爆发。
Default Value: true
设置最大边界(宽度乘高度),低于该边界以随机缩放粒子图像的尺寸(以像素为单位)。
Default Value: new Cartesian2(1.0, 1.0)

maximumMass : Number

以千克为单位设置粒子的最大质量。
Default Value: 1.0

maximumParticleLife : Number

设置粒子生命的可能持续时间的最大界限(以秒为单位),低于该界限的粒子的实际生命将被随机选择。
Default Value: 5.0

maximumSpeed : Number

设置以米/秒为单位的最大界限,低于该界限将随机选择粒子的实际速度。
Default Value: 1.0
设置最小边界(宽度乘高度),在其之上随机缩放粒子图像的尺寸(以像素为单位)。
Default Value: new Cartesian2(1.0, 1.0)

minimumMass : Number

以千克为单位设置粒子的最小质量。
Default Value: 1.0

minimumParticleLife : Number

设置粒子生命的可能持续时间的最小界限(以秒为单位),超过该界限将随机选择粒子的实际生命。
Default Value: 5.0

minimumSpeed : Number

设置以米/秒为单位的最小界限,超过该界限将随机选择粒子的实际速度。
Default Value: 1.0
将粒子系统从模型转换为世界坐标的 4x4 转换矩阵。
Default Value: Matrix4.IDENTITY
是否显示粒子系统。
Default Value: true

sizeInMeters : Boolean

获取或设置粒子大小是否以米或像素为单位。以米为单位的颗粒大小 true ;否则,大小以像素为单位。
Default Value: false
粒子在其生命开始时的颜色。
Default Value: Color.WHITE
在粒子生命开始时应用于粒子图像的初始比例。
Default Value: 1.0
一组强制回调。回调传递一个 Particle 和与上次的区别
Default Value: undefined

Methods

销毁此对象持有的 WebGL 资源。销毁一个对象允许确定性地释放 WebGL 资源,而不是依赖垃圾收集器来销毁这个对象。

一旦一个对象被销毁,它就不应该被使用;调用 isDestroyed 以外的任何函数都会导致 DeveloperError 异常。因此,如示例中所做的那样,将返回值 ( undefined ) 分配给对象。
Throws:
See:

isDestroyed () Boolean

如果此对象被销毁,则返回 true;否则为假。

如果该对象被销毁,则不应使用;调用 isDestroyed 以外的任何函数都会导致 DeveloperError 异常。
Returns:
如果此对象被销毁,则为 true ;否则, false
See:

Type Definitions

Cesium.ParticleSystem.updateCallback (particle, dt)

用于在每个时间步修改粒子属性的函数。这可以包括力修改、颜色、尺寸等。
Name Type Description
particle Particle 正在更新的粒子。
dt Number 自上次更新以来的时间(以秒为单位)。
Example:
function applyGravity(particle, dt) {
   const position = particle.position;
   const gravityVector = Cesium.Cartesian3.normalize(position, new Cesium.Cartesian3());
   Cesium.Cartesian3.multiplyByScalar(gravityVector, GRAVITATIONAL_CONSTANT * dt, gravityVector);
   particle.velocity = Cesium.Cartesian3.add(particle.velocity, gravityVector, particle.velocity);
}