粒子特效为模拟现实中的水、火、雾、气等效果由各种三维软件开发的制作模块,原理是将无数的单个粒子组合使其呈现出固定形态,借由控制器,脚本来控制其整体或单个的运动,模拟出现真实的效果。
在模拟阶段,根据生成速度以及更新间隔计算新粒子的数目,每个粒子根据发射器的位置及给定的生成区域在特定的三维空间位置生成,并且根据发射器的参数初始化每个粒子的速度、颜色、生命周期等等参数。然后检查每个粒子是否已经超出了生命周期,一旦超出就将这些粒子剔出模拟过程,否则就根据物理模拟更改粒子的位置与特性,这些物理模拟可能像将速度加到当前位置或者调整速度抵消摩擦这样简单,也可能像将外力考虑进去计算正确的物理抛射轨迹那样复杂。另外,经常需要检查与特殊三维物体的碰撞以使粒子从障碍物弹回。由于粒子之间的碰撞计算量很大并且对于大多数模拟来说没有必要,所以很少使用粒子之间的碰撞。
每个粒子系统都有用于其中每个粒子的特定规则,通常这些规则涉及到粒子生命周期的插值过程。例如,许多系统在粒子生命周期中对离子的阿尔法值即透明性进行插值直到粒子湮灭。
在更新完成之后,通常每个例子用经过纹理映射的四边形sprite进行渲染,也就是说四边形总是面向观察者。但是,这个过程不是必须的,在一些低分辨率或者处理能力有限的场合,粒子可能仅仅渲染成一个像素,在离线渲染中甚至渲染成一个元球,从粒子元球计算出的等值面可以得到相当好的液体表面。另外,也可以用三维网格渲染粒子。
在许多三维建模及渲染包内部就可以创建、修改粒子系统,如 3D Studio Max[1] 、Maya 以及 Blender 等。这些编辑程序使艺术家能够立即看到他们设定的特性或者规则下粒子系统的表现,另外还有一些插件能够提供增强的粒子系统效果,例如AfterBurn以及用于流体的 RealFlow。而2D的粒子特效软件中particleIllusion最为出色,因为他的渲染比一般的3D软件快较为平面化。Combustion 这样的多用途软件或者只能用于粒子系统的 Particle Studio 等都可以用来生成电影或者视频中的粒子系统。