Contents / Previous / Next


Particle Effects and Particle Engines

A particle systems is a technique to simulate certain fuzzy phenomena: fire, explosions, smoke, flowing water, sparks, falling leaves, clouds, fog, snow, dust, meteor tails, or abstract visual effects glowy trails, etc.

Implementation

The particle system's position or motion is controlled by what is called the emitter. The emitter administrates the particle system. It contains parameters like the number of particles, etc..

Each particle is an individual object responding to the environment around it like gravitational influence. It contains parameters like: lifetime, decay, random aging, color, speed and position.
It is common for all or most of these parameters to be fuzzy, in the sense that the emitter initializes the particles with parameter around some central value with random variation.

A typical particle system update loop (which is performed for each frame of animation) can be separated into two distinct stages, the parameter update/simulation stage and the rendering stage:

Simulation stage:
New particles are created and each of the particle's parameters, like velocity, color, life, etc, are initialized based on the emitter's parameters.
All the existing particles are checked to see if they have exceeded their lifetime, in which case they are removed from the simulation. Otherwise their position and other characteristics are modified, e.g., based on some sort of physical simulation.
It is common that particles fade out to nothingness by interpolating the particle's alpha value (opacity) or reducing their size during the lifetime of the particle.

Rendering stage:
Each particle is rendered usually in the form of a textured bill-boarded quad (i.e. a quadrilateral that is always facing the viewer).


Overview: Wikipedia: Particle Systems

Tutorials:
Particle System Tutorial von Martin Hering (local backup)
nehe.gamedev.net lesson=19: Particle Engine Tutorial

Particle Engines: ParticleSystems.org