目录
什么是粒子系统(What is a Particle System?)
粒子系统基础知识(Particle System Basics)
粒子生命和系统生命(Life of the particle and life of the system)
章教程将带你走进Cesium粒子系统API,如何给自己的app添加特效,例如:烟雾、火和火花。
什么是粒子系统(What is a Particle System?)
粒子系统是一种模拟复杂物理效应的图形技术。粒子系统是小图片的集合,当放到一起观察它们时,会形成一个更复杂的“模糊”对象,例如火、烟雾、气候,或者烟火(fireworks)。通过使用例如初始位置、速度和寿命属性来指定单个粒子的行为,可以控制这些复杂的效果。
粒子系统特效可以在电影和电子游戏中经常看到。例如,为了表示飞机危险,技术艺术家可以使用粒子系统来表示飞机引擎上的爆炸,然后渲染一个不同的粒子系统来表示飞机坠毁时的烟迹。
粒子系统基础知识(Particle System Basics)
让我们来看看基本粒子系统的代码:
var particleSystem = viewer.scene.primitives.add(new Cesium.ParticleSystem({
// Particle appearance
image : '../../SampleData/smoke.png',
imageSize : new Cesium.Cartesian2(20, 20);
startScale : 1.0,
endScale : 4.0,
// Particle behavior
particleLife : 1.0,
speed : 5.0,
// Emitter parameters
emitter : new Cesium.CircleEmitter(0.5),
emissionRate : 5.0,
modelMatrix : entity.computeModelMatrix(viewer.clock.startTime, new Cesium.Matrix4()),
lifetime : 16.0
}));
上面的代码创建了一个粒子系统(ParticleSystem),一个参数化的对象,用来控制粒子(Particle)对象随时间变化的外观和行为。粒子是由粒子发射器(ParticleEmitter)产生的,它们有位置和类型,存活一段时间,然后死亡。
一些属性可以是动态的。例如,请注意,这里使用startColor和endColor,而不是使用可用的单色属性color。在整个粒子生命周期中,这允许用户指定粒子的颜色可以在这两种颜色之间平滑地混合。startScale和endScale的工作原理类似。
影响该系统视觉输出的其他方法包括最大和最小属性。对于具有最大和最小输入的每个变量,粒子上该变量的实际值将随机分配到最大和最小输入之间,并在粒子的整个生命周期中保持不变。例如,当创建一个具有初始速度的例子时,用户可以直接使用速度变量,也可以指定最小速度和/或最大速度作为实际随机选择速度的界限。允许这样修改的属性包括图像大小、速度、寿命和例子寿命。
通过更改这些参数可以创建各种不同的效果-可以在粒子系统演示(Particle System demo)中尝试。
掌握Cesium粒子系统只是熟悉不同参数的问题。让我们更详细地讨论这些粒子系统的性质。
发射器(Emitters)
当一个粒子长生时,通过ParticleEmitter来控制其初始位置的速度矢量。发射器将每秒产生一定数量的粒子,这些粒子由发射率参数指定,初始化时的随机速度由发射器类型决定。
Cesium有各种各样的粒子发射器,可以直接使用。
BoxEmitter
BoxEmitter类在一个盒子内随机采样位置来初始化