Particle system
Encyclopedia
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, moving 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.
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.
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.
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; isosurface
s 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.
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.
, 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 Fork Particle
Studio and particleIllusion
can be used for the creation of particle systems for film, video, and video games.
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
. Another particle system tool kit for games is Fork Particle
which contains a particle effects editor and real time particle system engine.
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...
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, moving 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
Surface normal
A surface normal, or simply normal, to a flat surface is a vector that is perpendicular to that surface. A normal to a non-flat surface at a point P on the surface is a vector perpendicular to the tangent plane to that surface at P. The word "normal" is also used as an adjective: a line normal to a...
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 translatingTranslation (geometry)
In Euclidean geometry, a translation moves every point a constant distance in a specified direction. A translation can be described as a rigid motion, other rigid motions include rotations and reflections. A translation can also be interpreted as the addition of a constant vector to every point, or...
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 billboardedSprite (computer graphics)
In computer graphics, a sprite is a two-dimensional image or animation that is integrated into a larger scene...
quad
Quadrilateral
In Euclidean plane geometry, a quadrilateral is a polygon with four sides and four vertices or corners. Sometimes, the term quadrangle is used, by analogy with triangle, and sometimes tetragon for consistency with pentagon , hexagon and so on...
(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
Metaballs
Metaballs are, in computer graphics, organic-looking n-dimensional objects. The technique for rendering metaballs was invented by Jim Blinn in the early 1980s....
in off-line rendering; isosurface
Isosurface
An isosurface is a three-dimensional analog of an isoline. It is a surface that represents points of a constant value within a volume of space; in other words, it is a level set of a continuous function whose domain is 3D-space.Isosurfaces are normally displayed using computer graphics, and are...
s 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 Cinema 4DCinema 4D
CINEMA 4D is a 3D modeling, animation and rendering application developed by MAXON Computer GmbH of Friedrichsdorf, Germany. It is capable of procedural and polygonal/subd modeling, animating, lighting, texturing, rendering, and common features found in 3d modelling applications.- Overview:The...
, Lightwave
LightWave
LightWave 3D is a high end computer graphics program developed by NewTek. The latest release of LightWave runs on Windows and Mac OS X.- Overview:...
, Houdini
Houdini (software)
Houdini is a high-end 3D animation package developed by Side Effects Software which is headquartered in Toronto, Canada. It is a rewrite of the PRISMS ecosystem of standalone tools. Its chief distinction from other packages is that it has been designed as a purely procedural environment...
, Maya
Maya (software)
Autodesk Maya , commonly shortened to Maya, is 3D computer graphics software that runs on Microsoft Windows, Mac OS and Linux, originally developed by Alias Systems Corporation and currently owned and developed by Autodesk, Inc. It is used to create interactive 3D applications, including video...
, XSI
Softimage
Softimage, Co. was a company located in Montreal, Quebec, Canada that produced 3D animation software. Their flagship products, Softimage 3D and Softimage XSI, are used in the creation of computer animation for films, television advertisement, and video games...
, 3D Studio Max
3D Studio Max
Autodesk 3ds Max, formerly 3D Studio MAX, is for making 3D animations. It was developed and produced by Autodesk Media and Entertainment. It has modeling capabilities, a flexible plugin architecture and can be used on the Microsoft Windows platform. It's frequently used by video game developers, TV...
and Blender
Blender (software)
Blender is a free and open-source 3D computer graphics software product used for creating animated films, visual effects, interactive 3D applications or video games. The current release version is 2.60, and was released on October 19, 2011...
. 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
AfterBurn (plugin)
AfterBurn is a popular 3D Studio Max plugin, created by Sitni Sati. The latest version is 4.0.-Overview:AfterBurn is a volumetric effects plugin for Autodesk's 3D Studio Max software, which has been used in several feature films. AfterBurn is one of very few plugins to create and render true...
and RealFlow
RealFlow
RealFlow is a fluid and dynamics simulator for the 3D industry, created by Madrid-based Next Limit Technologies. Currently at version 2012, the stand-alone application can be used to simulate fluids, water surfaces, fluid-solid interactions, rigid bodies, soft bodies and meshes...
(for liquids). Compositing software such as Combustion
Combustion (software)
Combustion 2008 is the newest version of Autodesk's visual effects and compositing software tool.Combustion is a computer program "for motion graphics, compositing and visual effects" . The software retails for US$995...
or specialized, particle-only software such as Fork Particle
Fork Particle
Fork Particle is a computer graphics visual effects modeling and software development kit developed and sold by Fork Particle, Inc. Fork Particle uses its real time Particle Systems technology to simulate visual effects or particle effects such as CGI explosions, fire, rain, smoke, dust, etc...
Studio and particleIllusion
ParticleIllusion
particleIllusion is a stand-alone computer graphics application based on the particle system technique which allows users to create graphical animations, e.g. fire, explosions, smoke, fireworks, and various abstract visual effects. The predecessor of pIllusion is Illusion 2 which is licensed to...
can be used for the creation of particle systems for film, video, and video games.
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 (Development ended in 2008). Another for the XNA framework is the Dynamic Particle System Framework. HavokHavok (software)
Havok Physics is a physics engine developed by Irish company Havok. It is designed primarily for video games, and allows for real-time collision and dynamics of rigid bodies in three dimensions. It provides multiple types of dynamic constraints between rigid bodies , and has a highly optimized...
provides multiple particle system APIs. Their Havok FX API focuses especially on particle system effects. Ageia
AGEIA
Ageia, founded in 2002, was a fabless semiconductor company. Ageia invented PhysX – a Physics Processing Unit chip capable of performing game physics calculations much faster than general purpose CPUs; they also licensed out the PhysX SDK , a large physics middleware library for game...
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
NVIDIA
Nvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...
. Another particle system tool kit for games is Fork Particle
Fork Particle
Fork Particle is a computer graphics visual effects modeling and software development kit developed and sold by Fork Particle, Inc. Fork Particle uses its real time Particle Systems technology to simulate visual effects or particle effects such as CGI explosions, fire, rain, smoke, dust, etc...
which contains a particle effects editor and real time particle system engine.
See also
- Second LifeSecond LifeSecond Life is an online virtual world developed by Linden Lab. It was launched on June 23, 2003. A number of free client programs, or Viewers, enable Second Life users, called Residents, to interact with each other through avatars...
and Active WorldsActive WorldsActive Worlds is a 3D virtual reality platform. The Active Worlds client runs on Windows. Users assign themselves a name, log into the Active Worlds universe, and explore 3D virtual worlds and environments that other users have built. Users can chat with one another or build structures and areas...
are virtual worlds with built-in particle system editors
External links
- Particle Systems: A Technique for Modeling a Class of Fuzzy Objects — William T. Reeves (ACM Transactions on GraphicsACM Transactions on GraphicsACM Transactions on Graphics is a peer-reviewed scientific journal that aims to disseminate the latest findings of note in the field of computer graphics. It has been published since 1982 by the Association for Computing Machinery...
, 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 (GamasutraGamasutraGamasutra is a website founded in 1997 for video game developers. It is owned and operated by UBM TechWeb , a division of United Business Media, and acts as the online sister publication to the print magazine Game Developer...
, June 2000) - Particle Engine Using Triangle Strips — Jeff Molofee (NeHeNeheNehe is a county-level city of western Heilongjiang in Northeast China, It is located near the border with Inner Mongolia to the west and is under the administration of Qiqihar City, to the north-northeast.-External links:*...
) - Designing an Extensible Particle System using C++ and Templates — Kent Lai (GameDevGameDevGameDev.net is a website dedicated to game development, founded by Kevin Hawkins, Dave Astle, and Michael Tanczos among others, in 1999. It serves as a central trade resource and media outlet for the computer and video game industry, with particular regards to hobbyist and independent developers...
) - repository of public 3D particle scripts in LSL Second Life format - Ferd Frederix