Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page provides a tutorial on creating a Fire Tornado simulation with Chaos Phoenix in 3ds Max.

Overview

 

UI Text Box
typeinfo

This is an Intermediate Level tutorial. Even though no previous knowledge of Phoenix is required to follow along, re-purposing the setup shown here to another shot may require a deeper understanding of the host platform's tools, and some modifications of the simulation settings.

Section
Column
width40%

Requires Phoenix 3.11.00 Official Release and V-Ray Next Official Release for 3ds Max 2015+. If you notice a major difference between the results shown here and the behavior of your setup, please reach us using the Support Form.

The instructions on this page guide you through the process of creating a Fire Tornado effect using Phoenix and 3ds Max.

The Download button below provides you with an archive containing the end scene, as well as a Phoenix Render Settings preset that you can use to quickly set up the volumetric shading options for the fire tornado simulation.

 

UI Button
sizelarge
icondownload
titleDownload Project Files
urlhttps://drive.google.com/uc?export=download&id=1VDho8CYsbcTTLERXVhg4HjKeZixOla-4

Column
width60%
Align
videoautoplayloop
aligncenter
0PhoenixFD_FireTornado_FinalRender.mp4
1100%
2100%
3true
4false
5true

 

Units Setup

HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/habneJGAu7A?version=3&loop=1&playlist=habneJGAu7A" frameborder="0" allowfullscreen></iframe>

 

Units Setup


Section
Column
width40%

Scale is

Section
Column
width40%

Scale is crucial for the behavior of any simulation. The real-world size of the Simulator in units is important for the simulation dynamics. Large-scale simulations appear to move more slowly, while mid-to-small scale simulations have lots of vigorous movement. When you create your Simulator, you must check the Grid rollout where the real-world extents of the Simulator are shown. If the size of the Simulator in the scene cannot be changed, you can cheat the solver into working as if the scale is larger or smaller by changing the Scene Scale option in the Grid rollout.

The Phoenix solver is not affected by how you choose to view the Display Unit Scale - it is just a matter of convenience.

The fire tornado effect we're creating is about 6 meters in height so we choose to view the units as Centimeters.

Go to Customize → Units Setup and set Display Unit Scale to Metric Centimeters.

Also, set the System Units such that 1 Unit equals 1 Centimeter.

Column
width60%

 

Scene Layout


...

Section
Column
width40%

Here's how the simulation looks at the moment. Clearly this looks nothing like a fiery tornado so we need to make some changes.

Note how the smoke is going straight up instead of twisting the way a tornado would. We resolve this first by adding a 3ds Max Vortex force and tweaking its settings.

UI Text Box
typetip

The Preview to the right is generated by using Tools → Preview - Grab Viewport → Create Preview Animation (Shift + V).

Phoenix provides a high-quality GPU Preview directly in the 3ds Max Viewport which can be enabled from Preview rollout of the Phoenix Simulator. To do so, go to the Preview rollout → GPU preview section → Enable in Viewport.

You may want to keep it disabled if you're working through a Remote Desktop connection or on a machine with an integrated graphics card.

Column
width60%
videoautoplayloop
Align
0001_plane_source_simulator.mp4
1100%
2100%
3true
4false
5true

Adding the Vortex Force

aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/0vt8sMr13I8?version=3&loop=1&playlist=0vt8sMr13I8" frameborder="0" allowfullscreen></iframe>



Adding the Vortex Force


Section
Column
width40%

Create

Section
Column
width40%

Create a Space Warps → Forces → Vortex force. Phoenix will automatically recognize and use it during the simulation unless you choose to put it in the Simulator → Scene Interaction → Exclude List.

Set the Time Off to 200, or however many frames your simulation length is.

Set the Taper Length parameter to 0 - this parameter can be useful for controlling the height of the vortex but it tends to be easier to only use the options in the Capture and Motion section.

Set the Axial Drop and Orbital Speed parameters to 6.
Set the Radial Pull to 1.5.

To produce a funnel shape that doesn't spin outwards uncontrollably or collapse in on itself, you need to find a balance between the Radial Pull and the Orbital Speed. The provided values work for this example but if you are using a different setup, you may need to tweak the parameters until you get the desired shape.

Make sure to rotate the Vortex force gizmo 180 degrees in Y such that the arrow is pointing up in the +Z direction.

Column
width60%

...

Section
Column
width40%

Here's how the simulation looks now. This is going in the right direction.

We animate the position of the Vortex Force so the smoke and fire don't spin around a single static point in space - this should give the tornado a more chaotic appearance.

Column
width60%
videoautoplayloop
Align
0002_add_vortex_force.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/OHPRq1eeTcg?version=3&loop=1&playlist=OHPRq1eeTcg" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Vortex force and animate its position such that it moves in the XY plane inside the Simulator.

Here are the exact key-frames in case you'd like your setup to be identical to this tutorial. Also, set the tangents for the animation curves to Linear inside the Curve Editor. The default interpolation is Ease-In / Ease-Out which would cause to vortex to accelerate and decelerate unnaturally.

Frame 0:

X: -78
Y: 35
Z: -70

Frame 70:

X: 2
Y: -73
Z: -70

Frame 130:

X: 40
Y: 10
Z: -70

Frame 200:

X: -88
Y: -156
Z: -70

Column
width60%

...

Section
Column
width40%

Here's how the simulation looks after the animation on the Vortex force.

We are trying to make a Fiery Tornado simulation but fire is only present right at the bottom of the Simulator. To deal with this, we will use the Phoenix Fire Source to emit Fuel. Once Fuel is present in the Simulator, we can enable burning which will consume the emitted fuel and produce more fire.

Column
width60%
videoautoplayloop
Align
0003_vortex_animated.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/3j288ibpixU?version=3&loop=1&playlist=3j288ibpixU" frameborder="0" allowfullscreen></iframe>

 

 

Adding Fuel and Enabling Burning


...

Section
Column
width40%

Here's the simulation with Fuel emission and Burning enabled.

To deal with the uniform appearance, we'll make a few changes to the Phoenix Source and the Phoenix Simulator.

Column
width60%
videoautoplayloop
Align
0004_enable_burning_emit_fuel.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/ax_iaf5Fjvw?version=3&loop=1&playlist=ax_iaf5Fjvw" frameborder="0" allowfullscreen></iframe>

 

 

Tweaking the emission


Section
Column
width40%

Add a Noise modifier to the shelled Poly Plane.

Set the Scale to 134, and the X/Y/Z Strength to 456 / 127 / 77.

Enable Fractal and leave the Roughness to 0 and the Iterations to 6.

Make sure to Enable the Animate Noise option.

You may also open the Graph Editors → Track View - Curve Editor and set the tangents for the Phase parameter to Linear.

Column
width60%

...

Section
Column
width40%

Here's the simulation with the Noise modifier applied to the shelled plane. It's adding some nice break-up in the emission.

Column
width60%
videoautoplayloop
Align
0005_add_noise_mod_to_plane.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/nyQDl3Pejyc?version=3&loop=1&playlist=nyQDl3Pejyc" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Phoenix Source and set the Emit Mode to Volume Inject. The Volume Inject mode emits fluid into the container with pressure such that expansion occurs immediately after emission. This will further randomize the fire right at the source.

Set the Noise to 0.5. The Noise parameter acts as a random multiplier for the Inject Power.

Column
width60%

...

Section
Column
width40%

Here's how the simulation looks with those changes.

Setting the mode to Volume Inject instead of Surface Force allows the fluid to follow the vortex force more closely. Notice how the twisting of the smoke at the top of the simulator is more pronounced now.

Column
width60%
videoautoplayloop
Align
0006_volumeInject_plus_noise.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/9fGgXfjoa4Q?version=3&loop=1&playlist=9fGgXfjoa4Q" frameborder="0" allowfullscreen></iframe>

 

 

Phoenix Simulator Settings


Section
Column
width40%

Now that we've got Fuel, Temperature and Smoke injected into the simulation and carried by the Vortex force, the fiery tornado is finally starting to take shape.

One major issue to address is that the smoke can be clearly seen travelling straight up. This is caused by the Gravity setting in the Dynamics tab. With Fire/Smoke Simulations, cold smoke (Temperature lower than 300 Kelvin) falls down and hot smoke rises up. This is causing the funnel of the tornado to break-up in an unnatural way. There are 2 ways to go about fixing this:

  1. You can try increasing the Axial Drop / Orbital Speed / Radial Pull parameters on the Vortex Force to counteract gravity. This would likely be the 'physically correct' way to go about doing this - the vortex should be strong enough to have full influence over the trajectory. However, this could also turn into a time-consuming endeavor.
  2. You can simply disable Gravity.

We go with the second approach.

Uncheck the tickbox to the left of Gravity to disable it.

Column
width60%

 

...

 

Section
Column
width50%
videoautoplayloop
Align
0007_disable_gravity.mp4
185%
285%
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/oavAbbPJe5o?version=3&loop=1&playlist=oavAbbPJe5o" frameborder="0" allowfullscreen></iframe>

Gravity Disabled

Column
width50%
videoautoplayloop 
Align
0008_disable_gravity_hide_vortex.mp4
185%
285%
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/MsQRizpvMQ4?version=3&loop=1&playlist=MsQRizpvMQ4" frameborder="0" allowfullscreen></iframe>

Gravity Disabled and Vortex Force hidden so it doesn't affect the simulation

 

...

 

Section
Column
width40%

Set Time Scale to 0.9 to marginally slow down the simulation. This will give it a more epic appearance.

Smoke Dissipation should also be increased a bit. Set it to 0.1.

The dissipation of the smoke allows for interesting details to form while the smoke channel is carried through the cells of the simulator by the velocities present in the simulation.

Column
width60%

...

Section
Column
width40%

Here's the simulation with Time Scale at 0.9 and Smoke Dissipation at 0.1.

Column
width60%
videoautoplayloop
Align
0009_reduceTimeScale_incDissipation.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/Tuz_RdfSup0?version=3&loop=1&playlist=Tuz_RdfSup0" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Set the Conservation Mode to Buffered.

The Buffered conservation mode is ideal for fire simulations because it tends to give the most detail. It appears as if it 'chops up' the fluid as it is transferred through the cells.

UI Text Box
typeinfo

From this step onward the Fire Multiplier in the Rendering rollout → Volumetric Options...button → Fire has been reduced to 0.02 to make it easier to see what's going on in the preview videos below.

There is an entire section dedicated to the Volumetric Shading settings for the fire tornado - this is done merely for the sake of preview. If you'd like yours to look the same, reduce the Fire Multiplier to 0.02.

Column
width60%

 

...

 

Section
Column
width50%
videoautoplayloop
Align
0010_Buffered_Q8.mp4
185%
285%
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/aMI0LBrkUdU?version=3&loop=1&playlist=aMI0LBrkUdU" frameborder="0" allowfullscreen></iframe>

Buffered, Quality: 8 (default)

Column
width50%
videoautoplayloop
Align
0011_Buffered_Q80.mp4
185%
285%
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/uZuKkd1sUy8?version=3&loop=1&playlist=uZuKkd1sUy8" frameborder="0" allowfullscreen></iframe>

Buffered, Quality: 80

 

...

 

Section
Column
width40%

Disable Uniform Density and Set the Quality to 80.

Uniform Density controls whether the mass of the fluid is considered during the calculation. The mass is calculated as the inverse of the temperature - hot fluid is lighter and cold fluid is heavier. Since we disabled Gravity anyway, this won't do us any good. Disabling should save some time during the simulation.

The Conservation Quality controls how accurately the fluid is transferred through the cells of the Simulator. When this value is low, some of the fluid is lost along the way due to the nature of how grid-based simulations work.

Column
width60%

...

Section
Column
width40%

Uniform Density disabled and Conservation Quality at 80.

As can be seen here - not much of a difference, if any at all.

Column
width60%
videoautoplayloop
Align
0012_disable_UniformDensity.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/rHosUDwRaSQ?version=3&loop=1&playlist=rHosUDwRaSQ" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Increase the Steps per Per Frame to 3.

You'll notice that the smoke funnel is now much wider. This is caused by the Conservation Quality that we set to 80 earlier which is now applied 3 times over the course of a single frame. This causes the smoke to be transferred much further along the velocities created by the vortex force.

In the next step we increase the strength of the Vortex Force to both reduce the width of the funnel and make the simulation more violent.

Column
width60%
videoautoplayloop
Align
0013_spf_three_low_vortex_strength.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/eFbYV9RDmDU?version=3&loop=1&playlist=eFbYV9RDmDU" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Select the Vortex Force and increase the Axial Drop, Orbital Speed and Radial Pull parameters. How strong you make those is entirely up to your artistic judgement.

In this example, we set them to the following values:

Axial Drop: 48
Orbital Speed: 48
Radial Pull: 12

Column
width60%

 

...

 

Section
Column
width50%
videoautoplayloop
Align
0014_spf_three_mid_vortex_strenght.mp4
185%
285%
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/zCFOOJrATxc?version=3&loop=1&playlist=zCFOOJrATxc" frameborder="0" allowfullscreen></iframe>

Axial Drop: 24, Orbital Speed: 24, Radial Pull: 6

Column
width50%
Align
align
videoautoplayloop
center
0015_spf_three_final_virtex_strength.mp4
185%
285%
3true
4false
5true
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/NZpLej9Tt7c?version=3&loop=1&playlist=NZpLej9Tt7c" frameborder="0" allowfullscreen></iframe>

Axial Drop: 48, Orbital Speed: 48, Radial Pull: 12

 

...

 

Section
Column
width40%

Lastly, open the Output rollout of the Simulator and enable the export of Velocity.

The Velocity channel is required when rendering with Motion Blur so V-Ray knows in what direction to 'stretch' the fluid.

Column
width60%

...

Section
Column
width40%

Here's the entire 200 frames of the simulation with all the tweaks we've done so far:

Column
width60%
videoautoplayloop
Align
0016_tornado_with_volumeshader_tweaks.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/TQT6Oivvez0?version=3&loop=1&playlist=TQT6Oivvez0" frameborder="0" allowfullscreen></iframe>

 

 

Adding Phoenix Turbulence for Large-Scale Swirls


Section
Column
width40%

Create a Helpers → Phoenix FD → PHXTurbulence.

Set the Strength to 250 and the Size to 914.

Reduce the Fractal Depth to 0.

The Turbulence is used to break-up the fire even further. Please check the comparison images below.

Column
width60%

 

...

 

Section
Column
width50%

Image Modified
Without turbulence

Column
width50%

Image Modified
With turbulence

...

Section
Column
width40%

This section of the tutorial is optional. You may skip to the Rendering section below if you're not interested in re-creating the effect to the right.

Column
width60%
videoautoplayloop
Align
0018_timeScale_slowDown.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/Eq5fWvl8gwA?version=3&loop=1&playlist=Eq5fWvl8gwA" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

To create the bullet-time effect, open the Dynamics tab of the Phoenix Simulator and animate the Time Scale parameter as follows:

Frame 1: 0.9
Frame 48: 0.9
Frame 92: 0.1
Frame 117: 0.1
Frame 150: 0.9

The Time Scale is a global multiplier for the dynamics of the Simulator. Reducing it will uniformly scale down all sources of velocity in the simulation.

Consider settings the tangents to Linear in the Curve Editor - the default ease-in / ease-out may look unnatural.

Column
width60%

...

Section
Column
width40%

Go to Create → Cameras → V-Ray → V-Ray Physical Camera. The settings for the camera are as follows:

Position:

X: -27
Y: 2625
Z: 190

Target Position:

X: -50
Y: -40
Z: 615

Focus Distance is enabled and set to 2320. You may try rendering the simulation with Depth of Field - setting this up should give you a good starting point.

Sensor & Lens → Field of view is modified to 52.65.

In the Aperture section, the F-Number is set to 2.4 and the Shutter speed to 200 and the ISO to 200.

Under DoF & Motion blur, Motion blur is enabled.

UI Text Box
typewarning

You need to enable Velocity Channel export under the Phoenix Simulator → Output tab when rendering a simulation with Motion Blur. V-Ray uses the Velocity Channel to figure out the direction in which the fluid should be blurred.

Under Color & Exposure, Vignetting is enabled and the Value left to its default of 1. The Vignetting effects darkens the outer edges of the image.

In the Bokeh effects tab, the Blades option is enabled and set to 7, with a Rotation of 15.

Column
width60%

 

Render Settings

...

Section
Column
width40%

In the Render Setup Tab:

The Image sampler Type is set to Bucket.

The Max subdivs are set to 2.

The Bucket width is set to 16.

The Global illumination is disabled.

Column
width60%

 

...

 

Section
Column
width40%

For the final render, some corrections are made in the V-Ray Frame Buffer.

Exposure options are enabled and the Exposure is set to 0.2 and the Contrast to 0.16.

White Balance is also enabled and the Temperature is set to 6700.

Hue/Saturation is enabled and the Saturation is set to 0.04.

Experiment with the Curve to achieve the desired look.

Column
width60%

Image Added

 

...

 

Section
Column
width40%

And here is the final result.

Column
width60%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/habneJGAu7A?version=3&loop=1&playlist=habneJGAu7A" frameborder="0" allowfullscreen></iframe>