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 Phoenix FD in 3ds Max.

Overview


 

UI Text Box
sizemedium
typeinfo

This is an Intermediate Level tutorial. Even though no previous knowledge of Phoenix FD 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 FD 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 behaviour of your setup, please send an email to support@chaosgroup.com

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

The Download button below provides you with an archive containing the end scene, as well as a Phoenix FD 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=109v0uyIgvVNogp1YQbtsDoDMLSYhpwL7

Column
width60%

Videoautoplayloop
0PhoenixFD_FireTornado_FinalRender.mp4
1100%
2100%
3true
4false
5true

Units Setup


 

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 FD 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%

The final scene consists of the following elements:

  1. A shelled Poly Plane used as the source geometry for Smoke, Fuel and Temperature. An animated Noise modifier is applied to the plane to break-up the emission and produce interesting swirls.
  2. A Phoenix FD Fire/Smoke Source with the Poly Plane in its Emitter Nodes list. The Source is in Volume Inject mode and Noise is enabled for extra randomization.
  3. A Phoenix FD Fire/Smoke Simulator with some tweaks in the Grid, Dynamics, Fuel and Rendering roll-outs. It's note-worthy that with this setup Burning is enabled under the Fuel roll-out.
  4. A 3ds Max Vortex force responsible for creating the funnel. The position of the vortex force is animated which gives the tornado a more chaotic appearance.
  5. A Phoenix FD Turbulence force to break-up the fire and smoke even further. As the purpose of the turbulence is to create large-scale motion, its Size parameter is set to a rather high value and the Fractal Depth is reduced to 0 so the noise field has only 1 layer of details.
  6. A V-Ray Physical camera with minor tweaks for final rendering.
Column
width60%

 

 

Scene Setup


 

Section
Column
width40%

Set the Time Configuration → Animation Length to 200 so that the Timeslider goes from 0 to 200.

Column
width60%

...

Section
Column
width40%

Apply a Shell modifier to the plane to give it some thickness and set the Outer Amount to 5.

UI Text Box
sizemedium
typewarning

Using open geometry or geometry with no thickness (such as the plane in this example) can give you unpredictable simulation results. Making sure that your geometry is clean is crucial for a smooth workflow. Phoenix FD (and many simulation packages in general) use a volumetric representation of the emission geometry for the simulation. The process of creating this volumetric representation is called voxelization. The algorithms responsible for voxelizing the geometry can fail when using open (with holes) or planar (no thickness) geometry.

The Shell modifier is applied here to turn the plane into what is essentially a very thin box. This is enough to sort out any possible problems with the voxelization at simulation time.

Column
width60%

 

Phoenix FD Setup


 

Section
Column
width40%

Create a Phoenix FD Fire/Smoke Simulator and set the Grid → Cell Size to 4.

Set the Size X / Y / Z to 150 / 150 / 40 respectively.

Set the Boundary Conditions: Z to Jammed ( - ). When a wall is Jammed (closed off, basically) the velocities inside the simulator are calculated differently than in the situation where the wall is considered open. The emitted fluid will also collide with Jammed walls.

Column
width60%

...

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
sizemedium
typetip

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

Phoenix FD provides a high-quality GPU Preview directly in the 3ds Max Viewport which can be enabled from Preview roll-out of the Phoenix FD Simulator. To do so, go to the Preview roll-out → 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
0001_plane_source_simulator.mp4
1100%
2100%
3true
4false
5true

 

 

...



Adding the Vortex Force


 

Section
Column
width40%

Create a Space Warps → Forces → Vortex force. Phoenix FD 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 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 FD 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
0003_vortex_animated.mp4
1800
2450
3true
4false
5true

 

 

Adding Fuel and Enabling Burning


 

Section
Column
width40%

Select the Phoenix FD Source and enable the emission of Fuel.

Fuel is a required component for the simulation of burning. Once it comes into contact with the Temperature channel, it will ignite and produce more temperature and smoke based on the settings specified in the Fuel tab of the Simulator.

Column
width60%

...

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 FD Source and the Phoenix FD Simulator.

Column
width60%

Videoautoplayloop
0004_enable_burning_emit_fuel.mp4
1800
2450
3true
4false
5true

 

 

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 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
0006_volumeInject_plus_noise.mp4
1800
2450
3true
4false
5true

 

 

Phoenix FD 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
width40%

Lastly, open the Output roll-out 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%

 

 

Phoenix FD Render Settings


 

Section
Column
width40%

Let's make some tweaks to the Volumetric Shader before proceeding with the rest of the tutorial.

Open the Phoenix FD Simulator → Rendering roll-out and click the Volumetric Options button. The Volumetric Options contain the shading parameters for rendering fire and smoke. You can think of that window as the Phoenix FD Volumetric Shader.

In the Smoke Opacity roll-out, set Based on to Smoke. The Opacity Diagram below should now become active - it is used to control the thickness of the smoke.

The difference between the Smoke and Simple Smoke option is that when the Opacity is set to use the Smoke channel, the Opacity Diagram below can be used to make changes to the way the Smoke is rendered by using the opacity curve. With Simple Smoke, you get a single Simple Smoke Opacity multiplier that acts as if the Based on was set to Smoke and the curve below was completely straight, going from (0, 0) on the left to (1, whatever value Simple Smoke Opacity is ) on the right. To summarize: Based on: Smoke gives you access to a curve which can be used to control the thickness based on the value of the Smoke channel for a given voxel while the Simple Smoke provides a single uniform multiplier only.

The Opacity Curve in the diagram below is tweaked as follows:

Point 1: (0.1, 0)
Point 2: (0.95, 0.08)
Point 3: (1.0 , 0.3)

This change is essentially removing all the sparse smoke. If you want to get a clean preview of what your changes are doing to the Smoke, you can go to the Fire roll-out and set the Based on option to Disabled to isolate the Smoke.

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
0016_tornado_with_volumeshader_tweaks.mp4
1800
2450
3true
4false
5true

 

 

Adding Phoenix FD 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%


Without turbulence

Column
width50%


With turbulence

 

 

Animating the Time Scale for Bullet-Time Effect


 

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
0018_timeScale_slowDown.mp4
1800
2450
3true
4false
5true

...

Section
Column
width40%

To create the bullet-time effect, open the Dynamics tab of the Phoenix FD 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%

...

 

 

Rendering


 

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 FD 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%

 

 

 

 

 

 

...