Reference: Willaim T. Reeves, "Particle Systems - A Technique for Modeling a Class of Fuzzy Objects", Computer Graphics 17:3 pp. 359-376, 1983 (SIGGRAPH 83).
The use of Particle systems is a way of modeling fuzzy objects, such as fire, clouds, smoke, water, etc. These don't have smooth well-defined surfaces and are non-rigid objects, i.e., they are dynamic and fluid. Particle systems differ in three ways from "normal" representations for image synthesis:
Particle systems are an example of stochastic procedural modeling, similar to fractals, and have some of the same advantages. Some advantages are as follows:
A particle system is a collection of many minute particles that model some object. For each frame of an animation sequence the following steps are performed:
Since the creation and attributes of the particles are procedural, these can be the results of other computations, e.g. from science or engineering. This paper describes one way in which these particles can be generated and assigned attributes - using stochastic means.
Particles are generated using stochastic methods. Two ways to do this are shown below. In the first method the designer controls the mean number of particles generated per frame and the variance. So the number of particles generated at frame F is:
NpartsF = MeanPartsF + Rand() X VariancePartsF with -1.0 <= Rand() <= 1.0 , a uniformly distributed random number
A second method generates a certain number of particles per screen area.(so MeanParts and VarianceParts refer to a number per unit screen area:
NpartsF = (MeanPartsSAF + Rand() X VariancePartsSAF) X ScreenArea
This method is good for controlling the level of detail required. Note: SAF means per screen area for frame F.
The designer may want to change the number of particles generated as time changes and can do this by a simple linear function:
MeanPartsF = InitialMeanParts + DeltaMeanParts X (F-F0)
The designer could do this by some function other than linear if needed or desired. So the designer must specify the initial parameters for the above equations and then everything is automatic.
Each new particle has the following attributes:
A particle system has several parameters that control the initial position of the particles:
The generation shape describes the initial direction of new particles, e.g., for a sphere the particles would move away from the origin in all directions. For a planar shape, e.g. a circle in the x-y plane, the particles would move up and away from the plane (not necessarily straight up, this would be determined by the rotation angles).
The initial speed of a particle can be given by:
InitialSpeed = MeanSpeed + Rand() X VarSpeed
The initial color can be:
InitialColor = MeanColor (R,G,B) + Rand() X VarColor(R,G,B)
The initial opacity can be:
InitialOpacity = MeanOpacity (R,G,B) + Rand() X VarOpacity(R,G,B)
The initial size can be:
InitialSize = MeanSize + Rand() X VarSize
There is also a parameter that specifies the shape of each particle, e.g. spherical, rectangular, or streaked spherical (for motion blur).
A paticle's position in each succeeding frame can be computed by knowings its velocity (speed and direction of movement). This can be modified by an acceleration for more complex movement, e.g. gravity simulation.
A particle's color can be modified by a rate-of-color-change parameter, its opacity by a rate-of-opacity-change parameter, and its size by a rate-of-size-change parameter. These rates of change can be global, i.e. the same for all particles, or they can be stochastic for each particle.
When a particle is created it can be given a lifetime in frames. After each frame, this is decremented and when the lifetime is zero, the particle is destroyed. Another mechanism might be that when the color/opacity are below a certain threshold the particle is invisible and is destroyed. When a particle has left the region of interest, e.g., is a certain distance from its origin, it could be destroyed.
Particles can obscure other particles behind them, can be transparent, and can cast shadows on other particles. They can also interact with other, conventionally modeled primitives. In this system the authors made two assumptions. The first was that the particle systems do not intersect with other primitives (so the rendering system only has to handle particles). The other objects in a scene are rendered separately and then composited with the particle system images. If the particles do interacting with other objects, e.g., go behind them, then the images are divided into sub-images which are composited.
A second approximation is that the particles are light sources, that additively combine according to their color and opacity values. This eliminates the hidden surface problem since particles do not obscure each other but just add more light to a given pixel. It also eliminates shadows.
Their system has a particle hierarchy system such that particles can themselves be particle systems. The child particle systems can inherit the properties of the parents.
Last changed April 1, 1996, G. Scott Owen, owen@siggraph.org