home about gallery publications education links contact

..::entering the atmosphere::..

Note from the author: This article was written with 3ds max 5 in mind. It should be noted that later versions of 3ds max contain a new particle system, so some of the techniques in this article may not apply and/or could be performed easier using the new tools available.

Most people have, at some point, modelled and set up a scene to emulate an asteroid, comet, spaceship (etc) entering the atmosphere by simply assigning a particle system to the object, using a volumetric smoke plugin for the fire and then moving the object vertically down. While this is okay when the object is controlled, what if we need to have the object out of control, tumbling before and while entering the atmosphere?

Normally we would stop after adding our particle system (and smoke effect). The problem is the tumbling object. Usually, we can just assign particles to emit from the object itself, but as the object only emits fire / smoke (etc) from the surface in contact with the atmosphere, it makes it a little more difficult to emulate and control this effect. Therefore, a sub-object selection should be made on the geometry facing the atmosphere. Once this sub-object selection is used within the particle system, it will only emit particles from this geometry.

To create the selection so it is always facing the correct direction, we need to use a Volume Select modifier. Using a box gizmo we can position this so it selects the bottom faces of our tumbling object. Why don’t we simply select these faces using any normal sub-object selection method? Well, as our object is rotating, this selection will also rotate, which we do not want. Also, if we rotate the object itself, then the volume selection will also be rotated, so we need a way to just rotate the object and not the selection. The way to do this is to use an Xform modifier to rotate the sub-objects, therefore the local axis co-ordinates remain the same so the volume selection gizmo will stay in one place!

The smoke is emitted in a similar fashion. An additional non-renderable emitter is created from the original object and a sub-object selection made my using a volume select modifier as before. The volume select modifier’s gizmo should then be scaled and repositioned so that there is only a thin ring of polygons selected around the middle of the object. The particles used to generate the smoke should then be emitted using this sub-object selection. The reason we are using a thin band is because the heat is too intense and the air velocity too high to form the smoke underneath the object. Therefore, as the fire / burning material reacts with the air above the falling object the smoke is formed and billows away and out of shot.

Previewing the animation we notice that the sub-object emitted particles pass through the object emitting them. Therefore a larger non-renderable clone of the original object should be used to emit the particles, and another slightly larger non-renderable clone of the original should be used to deflect the particles around the original. Therefore, if a surface emits the fire/smoke, it should flow around the object and not through it.

The materials are a simple setup. There are two particle systems: fire and smoke. The fire system has a material that has additive transparency and particle age maps handling the opacity and colour of the fire particles so that they change colour and opacity as they get older. The smoke particle system is handled much the same way, but the opacity fades in then out and the particles start small then grow to their full size at death, so the smoke grows and dissipates with age

Depending on what the object that is entering the atmosphere is made from, the overall effect will differ; for example if the object is a comet then the ice will be heated to form steam (ie white – grey smoke), but if say metal begins to burn then we could have a darker more transparent smoke but hotter flame. These effects can be mixed and matched later on by tweaking the material and particle system settings.

Enlarge Screenshot Load in the scene teapot_start.max from the cover cd. Select the teapot in the scene and note that it already has the rotation set up. Reference clone the teapot and add a Push modifier to the stack. Set the Push Value to 10. Add a Volume Select modifier, set the Stack Selection Level to Face, Selection Type to Crossing, Select by Box, and position the gizmo so the underside of the teapot is selected as illustrated. Label it “Teapot-emitter fire”
Enlarge Screenshot Reference clone the original teapot again and label it “Teapot-emitter smoke”. As before, add a Push modifier and set the Push Value to 10. Add a Volume Select modifier, set the Stack Selection Level to Face, Selection Type to Crossing, Select by Box, and position the gizmo so a ring of faces is selected as illustrated
Enlarge Screenshot Create a Wind spacewarp over the teapots pointing upwards, set it’s Strength to 6 and Turbulence to 2. Reference clone the original teapot, label it “Teapot deflector” and add a Push modifier to the stack. Set the value to 2. Create a UDeflector and select the Teapot deflector as the deflector object. Set the Bounce to 0.1, Variation to 100 and Chaos to 30.
Enlarge Screenshot Create a PArray system and label it “PArray fire”. Bind it to the UDeflector and Wind Spacewarps. Select the Teapot-emitter fire object as the emitter and check on Use Selected Sub-Objects. Animate the birth rate from 0 at frame 0 to 200 at frame 100. Set the speed to 0, Emit Stop to 301, Display Until to 301, Life to 20, Variation 15, Size 25, Variation 50%, Grow For to 0. Set the particle type to Facing.
Enlarge Screenshot Clone the particle system and label it “PArray smoke”. Set the Teapot-emitter smoke as the emitter. Set the birth rate at frame 100 to 60, speed to 1, Life to 50, Variation to 10, Size to 500, Grow for to 60 and Fade for to 0. Create a new material and label it Fire. Check on Face Map, Self Illumination and set the Advanced Transparency Type to Additive.
Enlarge Screenshot Add a Particle Age map in the diffuse slot, set colour 1 to yellow, colour 2 to orange with an age value of 10, and colour 3 to red. Clone this map to the self-illumination slot. Add a Mask map in the Opacity slot. Add a Particle Age map in the Mask’s Mask slot, swap colours 1 and 3 and set colour 1 to a light grey. In the Mask’s map slot, add another Mask map. Add a Gradient map set to radial to both slots and set the Noise amount to 0.3 and Size to 6.3 in the map slot’s Gradient. (continued in the tips column…)
Enlarge Screenshot The final render has had the air wave displacement geometry (a modified hemisphere) composited on top of the particle, teapot and environment backplate so the particles’ image motion blur is not masked out.
Download the max file! Zip file to accompany.


Create a new material and label it Smoke. Set the diffuse colour to RGB 67,67,67. Check on Face Map. In the Opacity slot, add a Mask map. In the Mask slot, add a Particle Age map, set colours 1 and 3 to black and colour 2 to a dark grey with an age of 40. In the Mask map’s Map slot, add another Mask map. Add a Gradient Map to both slots as before and set the Noise amount to 0.3 and Size to 6.3 in the map slot’s Gradient. Assign the materials to their respective particle systems. Hide the deflector and emitter teapots.

Create an air wave by creating an un-capped hemisphere with a noise gradient ramp (stretched using a elongated cylindrical uvw map) fading in (with animated key positions in the gradient to pull it out). This should be masked with another gradient ramp map to fade the wave out at the top so the edge of the hemisphere isn’t visible.

If we want effective motion blur assigned to the particles and to the air wave geometry, we till have to use object (or scene) motion blur. This can take a long time to render because of the amount of geometry produced. Image motion blur is out as the air wave geometry will mask out the image motion blur on the particles. Therefore to get an effective result, the final render should be produced in two passes. Render off the scene using image motion blur for the particles, then render off (or composite) the air wave using object motion blur over the top of first render.

Finally, once everything is set up, we can animate the particle’s birth and set up the environment’s animation. As the particles are set to generate from frame 0, we should animate the air wave growing / fading in. Also, try adding camera shake using a noise controller on a dummy and link the camera to the dummy to add a little more drama to the scene. Animate a large geosphere with flipped normals to show the atmosphere and cloud coming into shot.

Initially published: 3D World magazine, Issue 39, June 2003.

Copyright Pete Draper, June 2003. Reproduction without permission prohibited.