Particle system

From Wikipedia, the free encyclopedia

This article is about 3D computer graphics. For the computer game developer, see Particle Systems Ltd.

The term particle system refers to a computer graphics technique to simulate certain fuzzy phenomena, which are otherwise very hard to reproduce with conventional rendering techniques. Examples of such phenomena which are commonly done with particle systems include fire, explosions, smoke, flowing water, sparks, falling leaves, clouds, fog, snow, dust, meteor tails, or abstract visual effects like glowy trails, etc.

Whilst in most cases particle systems are implemented in three dimensional graphics systems, two dimensional particle systems may also be used under some circumstances.

A particle system used to render a fire
A particle system used to render a fire
A particle system used to render a galaxy
A particle system used to render a galaxy
An abstract trail of particles
An abstract trail of particles

Contents

[edit] Typical implementation

Typically the particle system's position in 3D space or motion therein is controlled by what is called the emitter.

The emitter is mainly characterized by a set of particle behavior parameters and a position in 3D space. The particle behavior parameters might include spawning rate (how many particles are generated per unit of time), particle initial velocity vector (i.e. which way will it go when it is emitted), particle life (how much time does each individual particle live before being extinguished), particle color and variations throughout its life, and many more. It is common for all or most of these parameters to be fuzzy, in the sense that instead of absolute values, some central value and allowable random variation is specified.

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.

[edit] Simulation stage

During the simulation stage, the amount of new particles that must be created is calculated based on spawning rates and interval between updates, and each of them is spawned in a specific position in 3D space based on emitter position and spawning area specified. Also each of the particle's parameters, like velocity, color, life, etc, are initialized based on the emitter's parameters. Then 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 based on some sort of physical simulation, which can be as simple as adding the velocity to the current position, and maybe accounting for friction by modulating the velocity, or as complicated as performing physically-accurate trajectory calculations taking into account external forces. Also it is common to perform some sort of collision checking with specified 3D objects in order to make the particles bounce off obstacles in the environment. However, particle-particle collisions are rarely used, as they are computationally expensive and not really useful for most of the simulations.

A particle system has its own rules that are applied to every particle. Often these rules involve interpolating values over the lifetime of a particle. For example, many systems have particles fade out to nothingness by interpolating the particle's alpha value (opacity) during the lifetime of the particle.

[edit] Rendering stage

After the update is complete, each particle is rendered usually in the form of a textured billboarded quad (i.e. a quadrilateral that is always facing the viewer). However, this is not necessary; the particle may be rendered as just a single pixel in small resolution/limited processing power environments, or even as a metaball in off-line rendering (isosurfaces computed from particle-metaballs make quite convincing liquid surfaces). Finally, 3D meshes can also be used to render the particles.

[edit] Artist-friendly particle system tools

Particle systems can be created and modified natively in many 3D modeling and rendering packages including 3D Studio Max, Maya and Blender. These editor programs allow artists to have instant feedback on how a particle system might look given properties and rules that they can specify. There is also plug-in software available that provide enhanced particle effects, such as AfterBurn and RealFlow (for liquids). Compositing software such as Combustion or specialized, particle-only software such as Particle Studio and particleIllusion can be used for the creation of particle systems for film and video.

[edit] External links

In other languages