Water, Fire and Smoke
Effects Using Particles and Opacity Maps
By Neil Blevins
Aug 28th 1998
This is by no means a new technique, in fact, I saw it being demoed
at the Kinetix booth at Siggraph, but people have asked several times how
I create my smoke and water effects. So here's a quick tutorial discussing
the concepts, and a max file you can download that has all three examples.
Introduction
First off, here are the files...
You might find it helpful to have the max file open
as you're reading the tutorial below. This page will discuss the basic
concepts only, all specific parameters can be found in the max file.
Particle Systems
First we need some particles. In general, start
by creating a super spray particle system. Then start changing parameters.
-
Both Off-Axis and Off-Plane spreads should be numbers
between 10-20. This will let the particles spread out a bit after they're
launched from the emitter.
-
Adjust the particle rate and speed for whatever effect
you're trying to achieve. Rushing water is fast, smoke is slow, fire somewhere
in between. Remember to add some variation.
-
Change the Life parameter. Fire dies out, so have
the particles die before they reach the top of the screen. Water and smoke
tend to linger.
-
Make a large particle size, and a large variation.
Add a positive fade number if you want the particles to decrease in size
before they disappear (like in fire).
-
Under particle type, click on standard, and facing
particles.
-
Under Particle Rotation, use a spin time between
30 and 100 frames, give it a large variation (like 50%), and spin the particles
along their Y axis. This is so when we apply our material, not all the
particles look identical (since each particle will be at a different stage
of a rotation).
Standard Material
All three effects use a similar material type.
Here's how to make the standard material.
-
Click on the box preview, so you're preview sample
is a box and not a sphere.
-
Next, click on face map. This is very
important, since you're mapping each individual
face of your face mapped particles.
-
Turn shininess and shininess strength to 0, since
you're going to be playing with opacity maps, and don't want an unwanted
glare from transparent parts of your particles.
-
Under the Diffuse map, create a gradient material.
Make it a radial gradient, change the colors from a dark color to a light
color (or red to yellow, in the case of fire). Set Noise to an amount of
1.0, and type: fractal. Size depends on the overall size of your scene
and the size of the particles. Play with this till you get the desired
effect.
-
Next, make an opacity map by copying your diffuse
map into the opacity map. Change the opacity gradient's colors to black,
grey and white.
-
Now convert the opacity gradient into a mask map,
with the gradient as your primary map.
-
Under mask, place a second gradient. This should
be a simple radial gradient with no noise, which is white in the center
and black on the outside. The reason you do this is because this mask will
remove any noise that appears at the edge of your facing particles, so
you're guaranteed to have a nice rounded particle, and it won't betray
the fact that you're actually using 2D geometry to simulate a 3d effect.
Variations
Now on to the variations.
The first example is water from a waterfall. Water,
when there's enough of it (look at Niagara falls) becomes a thick mist.
For this effect, I used a lot of particles on top of one another. The noise
map has a large size value to make the water look more puffy. I used a
gravity spacewarp to help pull the particles down in a nice shoot.
The fire example doesn't use a super spray, but
a PArray, which does the same thing, except the emitter can be any object
(in this case, a torus). The material uses a large noise size value, and
has an opacity filter type of additive (under extended parameters). This
makes the flames glow. I included a large fade number so the flames die
out as they rise in the air. The particles rise due to a wind spacewarp.
Last is the smoke example. It's very similar to
the waterfall, except there's a lot less particles, the spin is much slower,
and the particles are moving more slowly (since smoke tends to rise more
gradually). You could also try playing with more wind modifiers to create
some rather interesting swirling smoke effects. As far as the material
goes, the noise size is slightly smaller, The colors of the opacity map
are much softer so the smoke is more transparent, and I also tinted the
color slightly blue to add some variety.
Well, there you have it. This is only the most
basic of recipes, things to try are experimenting with Particle Age maps,
different noise types and parameters, shininess maps, bump maps, and different
combinations of spacewarps (try animating the strength values of wind and
gravity for some really nice effects). Also try other kinds of effects,
like dust clouds, mist and tornados. Just let your imagination take over.
This site is ©2002 by Neil Blevins,
All rights are reserved.
Back to NeilBlevins.com