粒子系统是大量的粒子组成一个特定的渲染物,如烟火、喷泉等。一般每个粒子使用Billboard
DirectX对粒子也做了封装,也有了新的名称,“point
概念上,我们需要大量的粒子来组成一个粒子系统,因此在程序中,我们可能需要一个数组(或向量)来容纳这些小家伙。每个粒子,根据要模拟的形态(喷泉、烟火等),都具备不同的速度、生存时间、颜色和方向,当然,也可能有随时间变化的尺寸。程序中,跟三维建模工具中一样,一个粒子系统还一定有一个所谓的发射器(点),表示一个粒子产生的初始位置。
有了上述所有的参数和变量,我们就可以来让程序来管理整个粒子系统了。在每一个渲染的帧,程序需要扫描粒子系统中的每个粒子,根据要模拟的形态,推动该粒子在空间中的移动,变换粒子的色彩、大小;在到粒子生存时间消逝的时候,需要从粒子系统中回收该粒子。
渲染粒子系统的方式是要知道每个粒子都是一个Billboard,因此需要在粒子系渲染的时候用到公告牌技术。这样整个粒子系统就大致实现了。为什么说大致,是因为粒子系统背后原理都一样,但是不同的形态,需要不同的算法,弹性非常大,变换非常多。因此在商业游戏开发中,往往会制作相关的工具来生成游戏需要的粒子系统。
附录:
1、粒子示例代码

浙公网安备 33010602011771号