原文地址:https://cesiumjs.org/tutorials/Particle-Systems-Tutorial/
粒子系统介绍
这篇教程带你学习Cesium的粒子相关API,比如如何在你的项目里添加烟,火,火花等特效。
最终效果
什么是粒子系统?
粒子系统是一种图形学技术,用来模拟复杂的物理效果。粒子系统是由一堆很小的图片组成,看起来就像一些复杂的“含糊不清(fuzzy)”对象,就像火、烟、天气、或者 烟花。这些复杂效果其实是通过控制每一个独立的粒子的初始位置、速度、生命周期等属性来完成。
粒子系统通常在电影和游戏中应用广泛。比如,用来表示飞机的损伤过程,艺术家或者开发人员先用粒子系统来展示飞机引擎的爆炸效果,然后在用另一个粒子系统表示飞机坠毁过程中的烟雾轨迹。
粒子系统基本概念
先通过代码看下基本的粒子系统:
效果是这样的:
最终效果
上述代码里创建了 ParticleSystem类的对象, 传递了一个对象参数,来控制每个独立粒子 Particle 的外观 。粒子从 ParticleEmitter中生成,它有一个位置和类型、生存一段时间后,就消亡。
部分属性可以是动态的。注意示例代码里并非用了一个color属性,而是用了startColor 和endColor两个颜色属性。在粒子的整个时间中,根据时间在两个颜色之间做插值。startScale和endScale属性也是类似。
其他影响粒子系统效果的是maximum和minimum 属性。对于每个有最小和最大参数配置的属性,在粒子的初始化过程中会在这个最小最大值范围内随机,然后整个粒子的生存周期内都不会变化。比如,设定粒子的初始运行速度,可以直接设置 speed变量,也可以设置 minimumSpeed 和 maximumSpeed 变量做为随机速度的上下边界。允许类似设置的属性包括:imageSize, speed, life, 和particleLife。
通过这些参数可以创建很多很多种粒子效果,具体可以试下Sandcastle的粒子系统示例