home about gallery publications education links contact


..::gaseous fire::..

Ahh... plugin-free fire. This must be one of the most sought-after questions in CG, right after “How can I model a head”. Like modelling a head, it is very difficult to get right as we have all seen the big-budget Hollywood movies with stuff blowing up all over the place, and are familiar with fire’s properties, colour and illumination. Therefore, one specific element out of place when we are designing the effect, it will look laughably wrong.

Each type of fire behaves and looks differently. Look at any types of fire you can and you will see what I mean – wood fuelled fires “lick” surfaces, wrap themselves around combustable material and spread in one manner. Petrol fires behave another way and are coloured differently due to the type of fuel used.

Gaseous fires are entirely different and move not too dissimilar to liquid. One good example is the Lobby exposion scene from the Matrix, in which a blown-out (CG) lift door passes over and through the fire before striking the camera. The effect the special effects artist wanted was a billowing effect that wrapped around the posts and flowed through the large open area. Another type of fire would not have looked as good for this particular scene.

Gaseous fires are coloured differently to others and are tinted slightly different depending on the fire’s “age”. The closer to the source of the fire we get, the more intense the brightness, and the more yellow (to white) the colour gets. The further away we get from the source of the fire, the more the colour changes to a red, then to a slight purple; basically adding more blue to the colour as the fire absorbs more oxygen.

Gas fires aren’t all that bright compared to other types of fire. The majority of them are slightly reddish in hue, which therefore affects the light emitted from the ignited gas. The scene (in addition to existing lighting) should therefore be lit accordingly. Several point or direct lights should be placed over the surface of the fire facing outwards to light the environment, and some to light the fire geometry itself to add additional hot areas. These areas would consist of places where the fire would accumulate, such as corners of rooms, where the fire collides with additional objects, and especially where the fire is emitted as this would be the brightest point. These placed lights will not illuminate a subject a million miles away, so attenuation (either designed falloff or inverse-square) should be used to reduce the light’s intensity the further away from the light source the lit subject is positioned.

The example illustrated in this Q&A isn’t animated, but converting it is not all that taxing to produce (an animation of the effect can be found in the resources zip file). The fire geometry should be animated from it’s source. This should take on the form of animating the base plane’s settings, not by simple scaling. Doing it this way will enable the geometry to pass over the wave displacement that has been previously constructed. The smoke displacement will not have to be animated to show these ripples flowing out from the source as gaseous fire seems to leave the trails almost sitting there, simply billowing away. The smoke maps that create the displacement will have to animated though, which is a simple case of animating the phases of each map a little. The same should be applied to the smoke maps used in the fire’s material, Gradient Ramp maps (if any noise exists in the map) and in the Noise Modifier. The type of mapping may need to be changed else the Smoke procedural maps will just pass over the surface of the fire geometry in one direction and not be emitted outwards from the center, although this is hardly noticeable with all that is going on at the same time.

Although not covered in the short tutorial example or in the sample scene included on the cover CD (got to give you something to do!), this type of fire’s motion should be designed as if it was liquid. Therefore 3ds max 5’s Reactor dynamics could be put to excellent use here. As it’s motion is virtually liquid, the fire’s construction should really be geometry based, unless you are using a third party fluid dynamics system that can handle the materials used in this example.

Enlarge Screenshot In a new scene, create a Plane primitive 1000 x 1000 and set the Length and Width segments to 100. Add a Volume Select Modifier, set the Stack Selection Level to Vertex and Select By to Sphere. Enter Gizmo Sub-Object mode and scale the Gizmo to create a disc of red vertices a few in from the edge. Turn on Soft Selection and adjust the settings to create a falloff of about 5 vertices (a setting of about 30 in the Falloff spinner)
Enlarge Screenshot Add a Displace Modifier. In the Materials Editor, create a new Gradient Ramp map and set it’s Gradient Type to Radial. Design the gradient as shown. Drag the Gradient Ramp map to the Map slot of the Displace Modifier and set the Strength spinner to 50. Add another Displace modifier and set it’s strength to 200.
Enlarge Screenshot Create a new Mix map and assign smoke maps to slots 1 & 2. In slot 1’s smoke map, set the Source to Object XYZ, Size to 0.6, Iterations to 1 and Exponent to 0.2. Set Colour 1 to Black and add a Smoke map to Colour 2. Set this new smoke map’s Size to 1.5, Iterations to 1 and Exponent to 0.2. Set Colour 1 to RGB 70,70,70 and Colour 2 to 136,136,136. This displaces the inner (emitted) part of the fire. Make the size larger if desired.
Enlarge Screenshot In the Mix map, copy the Smoke maps into slot 2. In the first smoke map set the Size to 1 and the Exponent to 0.1. In the Smoke map in Colour 2, set the Size to 5 and colours 1 and 2 to black and RGB 195,195,195 respectively. At the top of the Mix map, add a Gradient Ramp map to the mix slot and amend it’s Gradient Type to Radial and design the gradient so it resembles that illustrated. Assign this map structure to the second displacement modifier’s map slot.
Enlarge Screenshot Add another Volume Select Modifier to the stack and set the Stack Selection Level to Vertex. Set the Selection Method to Replace and check on Invert. Change the Select By Volume to Cylinder. Add a Soft Selection falloff of about 150. Enter Gizmo Sub-Object mode and scale the Gizmo as illustrated so the inverted selection covers the exterior vertices and up and over the sides of the geometry.
Enlarge Screenshot Add a Noise Modifier to the stack and check on Fractal. Enter 100 for the X and Y Strength spinners. Finally, add a mesh Select Modifier to clear the vertex selection. For rendering more iterations, increase the multiplier spinner in the Plane’s Render Multipliers section. This completes our geometry, but the fire’s material is a different story. The entire completed scene is included on the cover CD for you to pull it apart.
Enlarge Screenshot Gaseous fire has a distintive form and varying degrees of colour. It's fluid motion and yellow-to-red shading can be reproduced effectively in 3ds max.
Download the max file! Zip file to accompany.

..::tips::..

The fire material consists of a multi-level material, mixing individual elements of the fire together. Right at the base level we have the self-illumination and coloured material which is generated with multiple Smoke maps which are coloured using Gradient Ramp maps to colour the smoke the further it is away from the center of our smoke cloud.

Several Smoke maps are used to overlay different coloured elements for the fire effect. In essence, each smoke level forms a different colour within the overall smoke “puff”. The Fire map is overlaid using a Shellac material on top of a dark material to keep the high intensity multiplied illumination but to also add some opacity to the overall material.

Finally, the Shellac material is mixed with a transparent material using a Falloff map to control the transparency. This enables us to easily amend the overall transparency of the material without having to adjust every material’s properties. The entire material tree could be easily condensed into one material, but it is better this way for illustrative purposes.

With the overall fire material assigned to the geometry, an Omni light is added to intensify the fire just above (or below depending on orientation of the geometry) the center of the fire. Finally, a roof (or floor) plane with a self-illumination gradient is added and positioned to clip the base of the fire geometry to remove the outer corners of the fire which have not been displaced.

Initially published: 3D World magazine, Issue 32, December 2002.

Copyright Pete Draper, December 2002. Reproduction without permission prohibited.

www.xenomorphic.co.uk