Particle system

Particle system

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 replicated using particle systems include fire, explosions, smoke, flowing water, sparks, falling leaves, clouds, fog, snow, dust, meteor tails, hair, fur, grass, or abstract visual effects like glowing trails, magic spells, etc.

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

Typical implementation

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 whence they proceed. A regular 3D mesh object, such as a cube or a plane, can be used as an emitter. The emitter has attached to it a set of particle behavior parameters. These parameters can include the spawning rate (how many particles are generated per unit of time), the particles' initial velocity vector (the direction they are emitted upon creation), particle lifetime (the length of time each individual particle exists before disappearing), particle color, and many more. It is common for all or most of these parameters to be "fuzzy" — instead of a precise numeric value, the artist specifies a central value and the degree of randomness allowable on either side of the center (i.e. the average particle's lifetime might be 50 frames ±20%). When using a mesh object as an emitter, the initial velocity vector is often set to be normal to the individual face(s) of the object, making the particles appear to "spray" directly from each face.

A typical particle system's 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

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 (i.e. velocity, color, etc.) 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 some sort of 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 (gravity, friction, wind, etc.). It is common to perform some sort of 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 really useful for most simulations.

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; a particle may be rendered as a single pixel in small resolution/limited processing power environments. Particles can be rendered as Metaballs in off-line rendering; isosurfaces computed from particle-metaballs make quite convincing liquids. Finally, 3D mesh objects can "stand in" for the particles — a snowstorm might consist of a single 3D snowflake mesh being duplicated and rotated to match the positions of thousands or millions of particles.

Snowflakes versus hair

Particle systems can be either animated or static; that is, the lifetime of each particle can either be distributed over time or rendered all at once. The consequence of this distinction is the difference between the appearance of "snow" and the appearance of "hair."

The term "particle system" itself often brings to mind only the animated aspect, which is commonly used to create moving particulate simulations — sparks, rain, fire, etc. In these implementations, each frame of the animation contains each particle at a specific position in its life cycle, and each particle occupies a single point position in space.

However, if the entire life cycle of the each particle is rendered simultaneously, the result is static particles — strands of material that show the particles' overall trajectory, rather than point particles. These strands can be used to simulate hair, fur, grass, and similar materials. The strands can be controlled with the same velocity vectors, force fields, spawning rates, and deflection parameters that animated particles obey. In addition, the rendered thickness of the strands can be controlled and in some implementations may be varied along the length of the strand. Different combinations of parameters can impart stiffness, limpness, heaviness, bristliness, or any number of other properties. The strands may also use texture mapping to vary the strands' color, length, or other properties across the emitter surface.

Artist-friendly particle system tools

Particle systems can be created and modified natively in many 3D modeling and rendering packages including Lightwave, Houdini, Maya,XSI, 3D Studio Max and Blender. These editing programs allow artists to have instant feedback on how a particle system will look with properties and constraints that they specify. There is also plug-in software available that provides enhanced particle effects; examples include 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.

Developer-friendly particle system tools

Particle systems code that can be included in game engines, digital content creation systems, and effects applications can be written from scratch or downloaded. One free implementation is [ The Particle Systems API] . [ Havok] provides multiple particle system APIs. Their Havok FX API focuses especially on particle system effects. [ Ageia] provides a particle system and other game physics API that is used in many games, including Unreal Engine 3 games. In February 2008, Ageia was bought by [ Nvidia] .

External links

* [ Particle Systems: A Technique for Modeling a Class of Fuzzy Objects] — William T. Reeves (ACM Transactions on Graphics, April 1983)
* [ The Particle Systems API] - David K. McAllister
* [ The ocean spray in your face.] — Jeff Lander ("Game Developer", July 1998)
* [ Building an Advanced Particle System] — John van der Burg (Gamasutra, June 2000)
* [ Particle Engine Using Triangle Strips] — Jeff Molofee (NeHe)
* [ Designing an Extensible Particle System using C++ and Templates] — Kent Lai (GameDev)

Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • many-particle system — daugiadalelė sistema statusas T sritis fizika atitikmenys: angl. many particle system vok. Mehrteilchensystem, n; Vielteilchensystem, n rus. многочастичная система, f; система многих частиц, f pranc. système à particules multiples, m; système à… …   Fizikos terminų žodynas

  • Particle — may refer to:In chemistry: * Colloidal particle, part of a one phase system of two or more componentsIn physics: * Subatomic particle, which may be either: **Elementary particle, a particle of which larger particles are composed, also called a… …   Wikipedia

  • Particle in a spherically symmetric potential — In quantum mechanics, the particle in a spherically symmetric potential describes the dynamics of a particle in a potential which has spherical symmetry. The Hamiltonian for such a system has the form:hat{H} = frac{hat{p}^2}{2m 0} + V(r)where m 0 …   Wikipedia

  • Particle rendering — #REDIRECT Particle systemIn 3D graphics software, particles are the name for large amounts of automatically created animation, like rain, fire, smoke, a flock of birds or falling leaves. The script generating the animation is adjusted until just… …   Wikipedia

  • Particle image velocimetry — (PIV) is an optical method used to measure velocities and related properties in fluids. The fluid is seeded with particles which, for the purposes of PIV, are generally assumed to faithfully follow the flow dynamics. It is the motion of these… …   Wikipedia

  • Particle Mesh — (PM) is a computational method for determining the gravity forces in a system of particles. These particles could refer to atoms, stars, or fluid components and so the method is applicable to many fields, including molecular dynamics and… …   Wikipedia

  • Particle tracking velocimetry — (PTV) is one of velocimetry methods, i.e a technique to measure velocity of particles. The name suggests that the particles are tracked, and not only recorded as an image as it is suggested in another form, particle image velocimetry. There are… …   Wikipedia

  • Particle swarm optimization — (PSO) is a swarm intelligence based algorithm to find a solution to an optimization problem in a search space, or model and predict social behavior in the presence of objectives.OverviewParticle swarm optimization is a stochastic, population… …   Wikipedia

  • Particle therapy — Intervention ICD 9: 92.26 Particle therapy is a form of external beam radiotherapy using beams of energetic protons, neutrons, or positive ions for cancer treatment. The most common …   Wikipedia

  • Particle size (grain size) — Particle size, also called grain size, refers to the diameter of individual grains of sediment, or the lithified particles in clastic rocks. The term may also be applied to other granular materials. This is different from the crystallite size,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”