Simulating Smoke with Particles
By
Pat Connelly
You can make a particle emitter out of various shaped
objects. Hollow objects such as a sphere do not work well as the spherical shape is
pulled out and there is a large gap in the center representing the hollow inside of the
sphere. Also, it helps if your object is compressed with all the faces in a tight
compact group. It works best if there are several layers of particles/faces rather
than one single dense one as a single layer does not seem to randomly spread out the
particles with the particle effect but instead the stream is too solid and dense.
How
many particles and faces are enough? My object has 396 faces which translates to the
same number of particles. I think around 400 works fine. Much less than that
seems a little sparse in making smoke. I originally made a box (extruded plane)
which also worked fine but I thought a circular emitter should be more appropriate.
This is a standard sphere with a 50 radius, 36 circle sections, and 12 vertical
sections. I cut off the top half of the sphere and then compressed the height to 5
units.
All attributes are default except fog. It has a
fog length of 500 with a falloff of 500 ( this was trial and error and will vary for
different sized emitters and particles. The falloff is planar and along the z plane.
The particle size is 30 and the particles are spheres aligned to the object.
I used inscribed but I don't think it matters. Don't try to render the object
in the Detail Editor as it will take a very long time. The particles are huge and
overlap one another. This greatly increases the rendering time. In the Stage
editor with the particle effect, the rendering time is short.
The emitter has two textures - ghost
and fogtop. Both fog settings are the same and listed to the left. The noise
settings for fogtop are 1 and 10, respectively. The only peculiar thing is the axis
placement for fogtop. Fogtop is a linear fade applied to fog objects. It is
controlled by the texture z axis. As I wanted the top of the smoke to gradually
fade, I needed the axis to be placed near the top of my smoke column. This distance
was calculated in the Stage editor. The fog falloff distance was also calculated
similarly and then reapplied in the detail editor.
The
fogtop axis placement is seen on the left. The graph units are 50 apart. You
can't edit the textures properly from the attributes selector in the stage editor.
The object is particalized by the particle effect and looks goofy when you edit it.
When you reload it into the stage editor, all the measurements are screwed up.
I used two copies of Imagine and edited the object in the detail editor while I
reloaded into the stage editor and everything worked fine.
Now
we move on the stage editor. Here is a picture of the object with the particle
effect applied to the first frame. As you see it does not look like the original
object. The settings for the particle effect are as follows: frames 1-120,
rain +, no bounce or taper, 100% emission; faces - scaling 5, delay 10; wind - off; travel
- distance 400, speed 0.5, time to terminal x and z is 60, min/max z - 0 and 10, min/max x
- -360 and +360, gravity - 0. What does the above mean? You need at least 120
frames so the smoke does move too fast. Thirty frames looks good but the smoke is
really billowing. 100% emission is a lot of particles. Scaling means the
particles get bigger as they travel up. A slight delay is used for the scaling.
A distance of 400 gives the smoke a nice shape and size. The min/max z gives
a tight column with only a little spread of the smoke particles. The min/max x gives
a symmetrical distribution around the z-axis. Gravity must be zero as the smoke
always rises. The time to terminal z and x is a critical value. I want my
smoke to loop nicely. You need to set this to 1/2 the total number of frames for a
nice symmetrical look which means frame 120 blends nicely into frame 1. Playing
around with these values will create any pattern of smoke you want.
Return to Main Menu or Tutorial Menu
Address comments and suggestions to Pat Connelly (fnadoc@erinet.com)