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 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.

true
Section
Column
width40%

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

The simulation requires Phoenix 4.41 Official Release

This tutorial includes two sets of files in separate folders.

For Phoenix 4 users, we have included updated files for use with Phoenix 4.41.02 Nightly Build ID 31210 (from 18th January 2022) and V-Ray 5 Update 2.2 (5.20.02) 3 Official Release for 3ds Max 2018 or later. Otherwise, if using Phoenix 3, the previous version of the files are available requiring 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 If you notice a major difference between the results shown here and the behavior of your setup,please  please reach us using the Support Form.

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

We start off the tutorial by creating a poly plane and using the Large Scale Smoke preset to generate the Phoenix 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 Turbulence force is used to further break-up the smoke shape. Finally, we tweak the Volumetric Rendering parameters of the Phoenix 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 Render Settings preset that you can use to quickly set up the volumetric shading options for a basic smoke simulation.

 

Download button below provides you with an archive containing the start and end scenes.

 

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

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

 

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

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 Source.
Column
width60%
videoautoplayloop
Align
0001_phx_setup.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/8SzkACJmJVY?version=3&loop=1&playlist=8SzkACJmJVY" frameborder="0" allowfullscreen></iframe>



Adding the Vortex Force


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 Axial Drop and Orbital Speed parameters to 5 6.
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%

Image RemovedImage Added

 

...

 

UI Text Box
typetip
Section
Column
width40%

Phoenix allows you to preview the velocities that an external force will add into the simulation. Because the Forces preview feature is fully interactive and does not require you to run a simulation, this can be especially useful when tweaking the parameters.

To specify the force you'd like to preview, go to the Simulator → Preview rollout and enable Forces under the Voxel Preview section.

Use the Add button to include the Vortex force into the Forces Preview List. If the grid of arrows is too dense, increase the Detail Reduction parameter - this will give you a sparser preview of the velocities represented as arrows.

UI Text Box
typewarning

Simulator → Preview → GPU Preview needs to be disabled for the Force preview to show up.

Column
width60%

...

true
Section
Column
width40%

If you were to run the simulation now, you'd notice that the Vortex force has a minor impact on the simulation.

Note the vertical speed of the smoke - this is caused by the high temperature coming into the simulation from the Phoenix Source.

This, coupled with a high Smoke Buoyancy value, forces the smoke upwards and partially negates the effect of the Vortex force.

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

 

...

 

Section
Column
width40%

Select the Phoenix Source and set the Temperature to 300.

The higher the temperature is, the faster the smoke will rise. Phoenix uses physically correct temperature values for its calculations so setting this to 300 Kelvin means the smoke will behave as if its at room temperature. If you were to reduce the temperature further, the smoke would start falling down - this can be quite useful for dust, sand or dry ice simulations. You can find out more about Phoenix Grid Channel Ranges here.

Column
width60%

...

true
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 Source and the emission geometry.

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

 

 

Converting from mushroom to a twister


...

Section
Column
width40%

Select the Phoenix Source and set the Polygon ID parameter at the bottom to 2.

Set the Noise parameter to 2 - this will break-up the emission by modulating the Outgoing Velocity.

Reduce Increase the Outgoing Velocity to 500 or so so a greater amount of smoke is emitted into the simulation.

Increase the Smoke parameter to 2 - this will cause the emitter to produce thicker smoke.

Note that those parameters are simply an artistic choice and in no way set it stone - you may tweak them as you see fit.

Column
width60%

...

Section
Column
width40%

Here's how things are looking:.

The mushroom is no longer there but we still need to address the sharp edges produced by the profile of the emission geometry.

We can do that by using a Radial texture as the Outgoing Velocity mask for the Phoenix Source.

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

 

...

 

Section
Column
width40%

Open the Material Editor and create a Gradient texture.

Set the Gradient Type to Radial and Left-Mouse-Button click and drag from the Gradient texture output to the Outgoing Velocity Mask parameter of the Phoenix Source.

If you'd like to preview the texture on your geometry, you could simply assign a material to the plane and hook up the texture to the Diffuse slot.

Column
width60%

...

Section
Column
width40%

The funnel is now starting to take shape.

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

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

 

 

Phoenix Simulator Properties


Section
Column
width40%

Select the Phoenix Simulator and open the Grid rollout.

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%

Image Removed

occurs. 

 

UI Text Box
typewarning

If you run the simulation and there is no smoking coming out of your emission geometry, please make sure that the geometry is inside the simulator.

If you are following along this tutorial and using the provided project files, move the emission geometry 10 units up in the Z axis, or move the Simulator 10 units down.

 

Column
width60%

Image Added

 

...

 

Section
Column
width40%

Open the Dynamics rollout and set the Smoke Dissipation to 0.1. This parameter controls how fast the smoke will thin-out and disappear as the simulation progresses. Feel free to experiment with this value if you'd like the dust devil to appear sparser.

Set the Conservation → Quality to 20. The lower conservation quality will produce a more chaotic appearance.

Column
width60%

...

true
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
Align
0006_sim_properties.mp4
1800
2450
3true
4false
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/cJMFu24gzIw?version=3&loop=1&playlist=cJMFu24gzIw" frameborder="0" allowfullscreen></iframe>
5

 

 

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 130:

X: 40
Y: 10
Z: -20

Frame 200:

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

20

Frame 200:

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

Column
width60%

Image Added

 

...

 

Section
Column
width40%

Add a Noise modifier to the shelled Poly Plane.

Set the Scale to 135, and the X/Y/Z Strength to 70/127/160.

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%

Image RemovedImage Added

 

...

 

Section
Column
width40%

Here's how the vortex looks with those changes.

The motion of the smoke is now much more interesting.

In the next step, we are going to animate the Outgoing Velocity so the dust devil can slowly dissipate after a few seconds of simulation.

And then, 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 Phoenix Turbulence

Add a Noise modifier to the shelled Poly Plane.

Set the Scale to 135, and the X / Y / Z Strength to 70 / 127 / 160.

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%
Image Removed
Align

...

align

...

section
center

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 Turbulence.
HTML
Column
width40%
<iframe width="800" height="450" src="https://www.youtube.com/embed/D07fh-E32iY?version=3&loop=1&playlist=D07fh-E32iY" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width60%40%

Select the Phoenix Source and animate the Outgoing Velocity to have a value of 500 from Frame 0 to Frame 120, and then from a value of 500 to 0 over the span of frames 121 to 200.

Be sure to also set the tangents of the animation curve to Linear.

true

Column
width60%

Image Added

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

 

 

Phoenix Turbulence for more swirls


Section
Column
width40%

Create a Helpers → Phoenix FD → PHXTurbulence.

If you are working with Phoenix 4.41 or later, set Set the Turbulence Strength to 40.

If you are using an earlier version prior to Phoenix 4.41, you can set the Turbulence Strength to 250.

Next, no matter which supported version of Phoenix you are usingNext, set the Turbulence 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 rollout. 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 whichever Strength value you used and a 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%

Image RemovedImage Added

 

...

 

Section
Column
width40%

Finally, open the Output rollout 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 rollout 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 rollout. 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 rollout → Start to cache the base simulation to disk.

Column
width60%

Image Removed

 

 

Rendering

to cache the base simulation to disk.

Column
width60%

Image Added

 

 

Rendering


Section
Column
width40%

Open the Phoenix Simulator → Rendering rollout 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 Volumetric Shader.

The Fire rollout → Based On parameter is set to Disabled

Section

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

A render preset will simply override the settings in the Rendering rollout. This allows you to quickly set up the shading options and start tweaking

.

Column
width40%

Open the Phoenix Simulator → Rendering rollout 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 Volumetric Shader.

The Fire rollout → Based On parameter is set to Disabled.

UI Text Box
typeinfo
Column
width60%

 

...

 

Section
Column
width40%

Under the Smoke Color rollout, Based on is set to Constant Color.

The Constant Color is set to RGB [ 187, 164, 124 ].

The External Scatter Multiplier is set to 0.6 to give the illusion of thickness of the smoke.

Column
width60%

...

Section
Column
width40%

A V-Ray Sun and a V-Ray Physical Camera are used for rendering the effect.

The Sun Filter Color is set to White, with the Mode set to Override.

The Sun and Sun Target positions are as follows:

  • Sun XYZ: [ -14901500, 366365, 2180 ]
  • Sun Target XYZ: [ 130, 20, 0 ]

The Camera and Camera Target positions are:

  • Camera XYZ: [ -2310, -33403350, 553 640 ]
  • Camera Target XYZ: [ -300, -40, 620 640 ]
Column
width60%

 

...

 

Section
Column
width40%

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

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

 

 

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

 

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 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
typewarning

It's very important to stress that this will not affect the Phoenix 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 simulation can only be tweaked from the Input rollout of the Simulator.

Column
width60%

...

Section
Column
width40%

Set SimulatorDynamicsSteps per Per Frame to 1 so you don't lose detail in the re-simulation process. If you're following along the tutorial, it should already be set to 1.

In general it's not recommended to change any Dynamics settings between the original simulation and Time-Bend Resimulation because all of them will affect the resimulation.

In order to get the closest match, both the original and resimulation should be run with 1 Step per Frame.

Column
width60%

...

Section
Column
width40%

That is all.

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

Column
width60%

 

 

Final

Render

Result


Section
Column
width40%

For the final imageresult, 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.5to illuminate the areas of the smoke which are in shadow.

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