A particle system is a technique in game physics, motion graphics, and computer graphics that uses a large number of very small sprites, 3D models, or other graphic objects to simulate certain kinds of “Fuzzy” phenomena, which are otherwise very hard to reproduce with conventional rendering techniques – usually highly chaotic systems, natural phenomena, or processes caused by chemical reactions.
Examples of such phenomena which are commonly replicated using particle systems include fire, explosions, smoke, moving water, sparks, falling leaves, rock falls, clouds, fog, snow, dust, meteor tails, stars and galaxies, or abstract visual effects like glowing trails, magic spells, etc..
These use particles that fade out quickly and are then re-emitted from the effect’s source.
Typically a particle system’s position and motion in 3D space are controlled by what is referred to as an emitter.
The emitter acts as the source of the particles, and its location in 3D space determines where they are generated and where they move to.
The emitter has attached to it a set of particle behavior parameters.
These parameters can include the spawning rate, the particles’ initial velocity vector, particle lifetime, particle color, and many more.
A typical particle system’s update loop can be separated into two distinct stages, the parameter update/simulation stage and the rendering stage.
During the simulation stage, the number of new particles that must be created is calculated based on spawning rates and the interval between updates, and each of them is spawned in a specific position in 3D space based on the emitter’s position and the spawning area specified.
Each of the particle’s parameters is initialized according to the emitter’s parameters.
At each update, all existing particles are checked to see if they have exceeded their lifetime, in which case they are removed from the simulation.
Otherwise, the particles’ position and other characteristics are advanced based on a physical simulation, which can be as simple as translating their current position, or as complicated as performing physically accurate trajectory calculations which take into account external forces.
It is common to perform collision detection between particles and specified 3D objects in the scene to make the particles bounce off of or otherwise interact with obstacles in the environment.
Collisions between particles are rarely used, as they are computationally expensive and not visually relevant for most simulations.
After the update is complete, each particle is rendered, usually in the form of a textured billboarded quad.
(text from wikipedia.com)