Versions Compared

Key

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

This page provides a tutorial on creating a Dust Devil 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 Dust Devil effect using Phoenix FD and 3ds Max.

We start off the tutorial by creating a poly plane and using the Large Scale Smoke preset to generate the Phoenix FD Source and Simulator. The funnel shape of the dust devil is achieved through the use of an animated 3ds Max Vortex force. A large-scale Phoenix FD Turbulence force is used to further break-up the smoke shape. Finally, we tweak the Volumetric Rendering parameters of the Phoenix FD Simulator for a final render. A Time-Bend Resimulation guide is also provided as an extra option at the end of this tutorial.

The Download button below provides you with an archive containing the start and end scenes, as well as a Phoenix FD Render Settings preset that you can use to quickly set up the volumetric shading options for a basic smoke simulation.

 

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

Column
width60%

Videoautoplayloop
0dust_devil_render.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 dust devil effect we're creating is about 1 meter 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 smoke source geometry. 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. A Radial Gradient texture is used as an Outgoing Velocity mask to produce smoother emission at the edges of the poly plane.
  3. A Phoenix FD Fire/Smoke Simulator generated by the Large Scale Smoke preset with some tweaks in the Grid, Dynamics and Rendering roll-outs.
  4. A 3ds Max Vortex force responsible for creating the funnel. The position of the vortex force is animated which gives the dust devil a more chaotic, realistic appearance.
  5. A Phoenix FD Turbulence force to break-up the 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.
  6. A V-Ray Sun Light for direct lighting
  7. A V-Ray Dome Light for ambient lighting
  8. 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.

If you need any geometry animation that should interact with the simulation, prepare the animation at this step. After we're done with the basic simulation, we will rescale the timeline to slow down any animation present in the scene and we will use the Resimulation option to slow down the smoke simulation as well.

Column
width60%

...

Section
Column
width40%

Apply a Shell modifier to the plane and leave the Outer Amount at its default value of 1.

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%

Select the shelled Plane and left-click the Large Scale Smoke preset icon.

This will generate an entire setup for you consisting of a Phoenix FD Fire/Smoke Simulator and a Phoenix FD Fire/Smoke Source. The preset will automatically link the Plane to the Phoenix FD Source, adding it into the Source's Emitter Nodes list.

Column
width60%

...

Section
Column
width40%

Here's how the simulation looks so far. There are a few things to address:

  1. The smoke is going straight up instead of twisting the way a dust devil would. We resolve this first by adding a 3ds Max Vortex force and tweaking its settings.
  2. The smoke emission is too symmetric and produces a mushroom - we resolve this by modulating the emission with a Gradient texture
  3. The entire poly plane is emitting smoke instead of only the top faces - this can be resolved by assigning the top faces a unique Polygon ID and specifying that in the Phoenix FD Source.
Column
width60%

Videoautoplayloop
0001_phx_setup.mp4
1800
2450
3true
4false
5true



Adding the Vortex Force


 

Section
Column
width40%

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

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

To produce a funnel shape that doesn't either 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.

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.

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:

The smoke is still too dense and produces a mushroom at the top.

We address this next by tweaking the Phoenix FD Source and the emission geometry.

Column
width60%

Videoautoplayloop
0003_vortex_force_section_end.mp4
1800
2450
3true
4false
5true

 

 

Converting from mushroom to a twister


 

Section
Column
width40%

Let's first limit the emission to the top faces of the shelled poly plane.

There are 3 ways to go about this - using a Discharge Modifier on the Phoenix FD Source, using emission from Vertex Color in the Source, or setting a unique polygon ID for the faces of the geometry to emit from and feeding it to the Source.

We will use the Polygon ID technique for convenience. You can find more information on Discharge Modifiers in the Discharge Modifiers Documentation.

 

Select the Shelled Poly Plane and add an Edit Poly modifier. Go into face selection mode and select the top faces of the geometry.

Use the Set ID field to give them an ID of 2.

You may also choose to only do this for a portion of the top faces instead - check the screenshot to the right.

Column
width60%

...

Section
Column
width40%

The funnel is now starting to take shape.

We are now ready to start tweaking the Phoenix FD Simulator properties.

Column
width60%

Videoautoplayloop
0005_gradient_tex_on_source.mp4
1800
2450
3true
4false
5true

 

...



 

Phoenix FD Simulator Properties


 

Section
Column
width40%

Select the Phoenix FD Simulator and open the Grid roll-out.

Set the Boundary Conditions: Z to Jammed(-). This will cause the bottom wall of the simulator to act as a solid obstacle, allowing us to use it as the ground.

Set the Cell Size to 8 to increase the resolution of the grid.

Set the X / Y / Z size to 80 / 80 / 20.

The Adaptive Grid option should be set to Smoke by the Large Scale Smoke Preset. The Adaptive Grid allows the container to resize on-demand as the simulation progresses, saving you a lot of time. Instead of calculating a giant grid from the start, a specific channel is tracked (Smoke in this case) and the grid is automatically resized around it.

Enable Maximum Expansion and set the X / Y / Z dimensions according to your needs. Because the Z axis is Jammed in the negative Z direction, the Z(-) field is left at 0. 

Set the Extra Margin to 10 - this option allows the adaptation to keep a number of voxels close to the walls as a buffer zone and expand the grid earlier than usual. This can be especially useful when simulating fast-moving objects or explosions as it allows the simulator to expand before any clipping occurs. 

Column
width60%

...

Section
Column
width40%

Here's how the simulation looks with those tweaks:

The motion of the funnel is interesting enough, and it seems to be forming properly.

However, the simulation feels static. In real life, a dust devil forms spontaneously and chaotically moves all over the place. Our funnel, on the other hand, is simply sitting there and rotating.

In the next step, we will make the simulation more dynamics by animating the position of the Vortex field, and adding a Noise modifier to the emission poly plane geometry.

Column
width60%

Videoautoplayloop
0006_sim_properties.mp4
1800
2450
3true
4false
5true

 

 

Making the simulation more dynamic


 

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 keyframes in case you'd like your setup to be identical to this tutorial:

Frame 0:

X: -240
Y: 230
Z: -20

Frame 70:

X: 3
Y: -70
Z: -20

Frame 130:

X: 40
Y: 10
Z: -20

Frame 200:

X: -310
Y: -370
Z: -20

Column
width60%

...

Section
Column
width40%

Here's how the vortex looks with those changes:

The motion of the smoke is now much more interesting.

The only thing left to address is the lack of random swirls you usually see in real-life dust devils.

We will try to recreate those with a large-scale Phoenix FD Turbulence.

Column
width60%

Videoautoplayloop
0008_result_before_resim.mp4
1800
2450
3true
4false
5true

 

 

Phoenix FD Turbulence for more swirls


 

Section
Column
width40%

Create a Helpers → Phoenix FD → PHXTurbulence.

Set Strength to 250, Size to 900 and Fractal Depth to 5.

The Strength is self-explanatory - the higher the strength, the stronger the effect of the turbulence force on the simulation.

The Size is increased to 900 to get large-scale swirls. You can compare this to the Simulator size in the Grid roll-out. The Fractal Depth works like a layering option. A fractal depth of one will give you a single noise layer. A fractal depth of two will give you 2 layers - the first with a Strength of 250 and Size of 900, and a second one multiplied on top with half the Strength and Size of the previous. In other words, the higher the Fractal Depth is, the more layers there are in the noise, and the more detail there is.

You may preview the Turbulence by including it in the Preview → Forces Preview Set. Don't forget to disable the GPU Preview because it overrides the Voxel Preview and the Forces won't show up in the Viewport.

Column
width60%

...

Section
Column
width40%

Finally, open the Output roll-out and enable the export of Velocity and Wavelet Grid Channels.

The Velocity channel is required for rendering with Motion Blur. It is also needed when slowing down a simulation from the Input roll-out through the Precise Tracing blending method. In the final section of this tutorial we take a look at reducing the speed of the smoke and re-simulating for extra detail.

The Wavelet channel is used when Wavelet Turbulence is enabled under the Resimulation roll-out. The wavelet channel holds the 'wavelets' which you can think of as very small scale detail produced by the velocity that is amplified during the re-simulation process.

 

Hit Simulation roll-out → Start to cache the base simulation to disk.

Column
width60%

 

...



 

Rendering


 

Section
Column
width40%

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.

The Fire roll-out → Based On parameter is set to Disabled.

UI Text Box
sizemedium
typeinfo

The provided project files contain a phoenixFD_DustDevil_finalRender_Preset.tpr rendering preset. You can load a Phoenix FD Rendering preset from the Simulator → Rendering → Render Presets → Load from File... option.

A render preset will simply overrite the settings in the Rendering roll-out. This allows you to quickly set up the shading options and start tweaking.

Column
width60%

...

Section
Column
width40%

Here's a Viewport Preview Animation of the simulation before re-timing:

Column
width60%

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

 

Slowing down the simulation and adding Wavelet Turbulence


 

Section
Column
width40%

Suppose you want to slow the simulation down twice.

To achieve that, you need to take care of two things:

  1. You need to slow down the motion of the objects in your scene
  2. You need to slow down the Phoenix FD simulation by reducing the Play Speed from the Input rollout of the Simulator.

To slow down the animation of your scene objects, open the Time Configuration window, click the Re-scale Time button and set the Length to 400 (assuming you are working with the provided scene file which has a total animation length of 200).

The total duration of the animation will now be doubled.

UI Text Box
sizemedium
typewarning

It's very important to stress that this will not affect the Phoenix FD Simulation.

If you have 60 frames simulated, Re-Scale the timeline to 120 frames and hit the Play button, the simulation will play from frame 0 to frame 60, just like before the Re-Scaling.

The play speed of a Phoenix FD simulation can only be tweaked from the Input roll-out of the Simulator.

Column
width60%

...

Section
Column
width40%

That is all.

Hit Start and wait for the resimulation to cache to disk.

Column
width60%

 

...



 

Final Render


 

Section
Column
width40%

For the final image, a few adjustments have been made to get a prettier render.

The V-Ray Sky texture is disabled from the Environment and Effects window (hit 8 to open it) → Background → Use Map.

The Sun Filter Color is set to White, and the Color Mode to Override. Instead of relying on the Sun's color to give a sand-like appearance to the Smoke, the Smoke Color parameter is tweaked instead.

A Dome Light with default White color and Intensity of 0.2 is used to illuminate the areas of the smoke which are in shadow.

Finally, the Vortex Force was tweaked to make the smoke disperse more. The Axial Drop and Orbital Speed are set to 6, and Radial Pull to 1.5.

Column
width60%

...