粒子系统原理 粒子系统几乎是每个引擎中比不可少的部分,它主要用来解决由大量按一定规则运动(变化)的微小物质组成的大物质,在计算机上的生成与显示的问题。经常使用粒子系统模拟的现象有火、爆炸、烟、 水流、火花、落叶、云、雾、雪、尘、流星尾迹或者象发光轨迹这样的抽象视觉 效果等等。如图8-1,8-2他们都是由粒子系统来完成的。 图 8-1 SimplePhy sicsParticles1.0中的截图 图 8-2 由粒子系统完成的爆炸等效果 通过上面的两幅图我们可以看出,其实粒子系统是一种特效发生器,它可以制造大量的小粒子来达到某种特殊的效果,比如烟雾、火焰或者爆炸。好的粒子效果甚至比渲染好的动画都出色,正因为如此,当前几乎所有的游戏中都使用了粒子系统。为了制造真实的粒子效果,粒子发生器必须在不影响帧率的情况下控制成千上万的粒子运动。简单的粒子系统只允许设置粒子的一些属性,比如生存时间、重力或者颜色;复杂的粒子系统允许为每个粒子的运动函数编写代码。一些粒子系统也包含了光线生成器来创建光线或者轨迹。 粒子系统基本原理 粒子系统是采用大量的、具有一定生命和属性的微小粒子图元作为基本元素来描述不规则的模糊物体。在粒子系统中,每一个粒子图元均具有:形状、大小、颜色、透明度、运动速度和运动方向、生命周期等属性。而一个粒子究竟有什么样的属性,主要取决于粒子系统用来模拟什么。粒子系统是动态变化的,粒子系统的所有属性都是时间t 的函数,随着时间的推移,系统中不断有新粒子的加入,旧的粒子死亡,系统中“存活”的粒子其位置及生命值亦随时间变化而变化。随着虚拟世界时间的流逝,每个粒子都要在虚拟世界经历“产生”、“活动”和“消亡”三个阶段。一般而言,粒子系统的绘制基本可按照以下步骤进行。 ①产生新的粒子加入系统中; ②赋予每个粒子一定的属性; ③删除超过生命值上限的粒子; ④根据粒子属性的动态变化对粒子进行移动和变换; ⑤绘制并显示由有生命的粒子组成的图形。 其中第③、④、⑤步循环形成了物体的动态变化过程。 粒子系统的组成 通过前面的学习,我们知道了粒子系统中每一颗粒子他都具有自己的各种属性,因此这每一颗粒子就是一个粒子对象,所以我们的例子系统首先需要一个代表粒子的类 Particle。由于我们每一种特效都需要很多粒子来实现,这些粒子的运动方式以及发射的频率都是我们能够控制的,所以我们还需要一个用于控制粒子特效的类 ParticleSy stem。综上所诉...