ParticleSystem

new LSGlobe.ParticleSystem ( options )

粒子系统管理粒子集合的更新和显示。
Name Type Description
options Object optional Object with the following properties:
Name Type Default Description
show Boolean true 可选 是否显示粒子系统。
updateCallback ParticleSystem.updateCallback 可选 每帧都要调用一次回调函数以更新粒子。
emitter ParticleEmitter new CircleEmitter(0.5) 可选 该系统的粒子发射器。
modelMatrix Matrix4 Matrix4.IDENTITY 可选 将粒子系统从模型转换为世界坐标的4x4转换矩阵。
emitterModelMatrix Matrix4 Matrix4.IDENTITY 可选 在粒子系统局部坐标系内转换粒子系统发射器的4x4转换矩阵。
emissionRate Number 5 可选 每秒要发射的粒子数。
bursts Array.< ParticleBurst > 可选 ParticleBurst 的数组,在周期性的时间发射粒子爆发。
loop Boolean true 可选 粒子系统完成后是否应该循环爆发。
scale Number 1.0 可选 设置缩放比例,以在粒子的生命周期内应用于粒子的图像。
startScale Number 可选 在粒子寿命开始时应用于粒子图像的初始比例。
endScale Number 可选 在粒子寿命结束时应用于粒子图像的最终比例。
color Color Color.WHITE 可选 设置粒子在其粒子寿命期间的颜色。
startColor Color 可选 粒子在其生命初期的颜色。
endColor Color 可选 粒子寿命结束时的颜色。
image Object 可选 用于广告牌的URI,HTMLImageElement或HTMLCanvasElement。
imageSize Cartesian2 new Cartesian2(1.0, 1.0) 可选 如果设置,则将覆盖用来缩放粒子图像尺寸(以像素为单位)的minimumImageSize和maximumImageSize输入。
minimumImageSize Cartesian2 可选 设置宽度的最小范围,以高度为单位,在该范围之上可以随机缩放粒子图像的尺寸(以像素为单位)。
maximumImageSize Cartesian2 可选 设置最大宽度宽度(以高度为单位),在该范围内可以随机缩放粒子图像的尺寸(以像素为单位)。
sizeInMeters Boolean 可选 设置粒子的大小是米还是像素。 true 以米为单位调整粒子大小;否则,大小以像素为单位。
speed Number 1.0 可选 如果设置,则用该值覆盖minimumSpeed和maximumSpeed输入。
minimumSpeed Number 可选 设置以米/秒为单位的最小界限,高于该界限时,将随机选择粒子的实际速度。
maximumSpeed Number 可选 设置以米/秒为单位的最大范围,在该范围内将随机选择粒子的实际速度。
lifetime Number Number.MAX_VALUE 可选 粒子系统发射粒子的时间(以秒为单位)。
particleLife Number 5.0 可选 如果设置,则使用此值覆盖minimumParticleLife和maximumParticleLife输入。
minimumParticleLife Number 可选 设置以秒为单位的粒子生命的可能持续时间的最小范围,在该时间范围内可以随机选择粒子的实际生命。
maximumParticleLife Number 可选 设置粒子寿命的可能持续时间的最大限制(以秒为单位),在该范围内将随机选择粒子的实际寿命。
mass Number 1.0 可选 设置最小和最大颗粒质量(以千克为单位)。
minimumMass Number 可选 设置粒子质量的最小范围(以千克为单位)。粒子的实际质量将被选择为高于该值的随机量。
maximumMass Number 可选 设置最大粒子质量(以千克为单位)。粒子的实际质量将选择为低于此值的随机量。
Tutorials:
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;否则返回false。否则为假。

如果该对象被破坏,则不应使用。调用除 isDestroyed 将导致 DeveloperError 异常。
Returns:
真正 该物体是否被破坏;除此以外,
See:

Type Definitions

LSGlobe.ParticleSystem.updateCallback (particle, dt)

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