Versions Compared

Key

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

...

Section
Column
width40%

Start the simulation. To the right is a Viewport Preview showing the result of the simulation so far.

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

 

...

 

Section
Column
width40%

As you can see in the preview animation, we have unwanted fire in the smoke.

Keep the simulation unchanged. Go to Simulator → Rendering rollout, click on the Volumetric Options, disable the Fire.

We still need to simulate the temperature so it would make the smoke rise up, so we don't disable it from the simulation via the Output rollout, but instead just turn it off for rendering.

Set the Smoke Color to light gray color (RGB = 245, 245, 245). Also, disable the Scattering.

Now the smoke appears too thin, so let's increase the Simple Smoke Opacity to 0.9 (found in the Smoke Opacity rollout).

Column
width60%

...

Section
Column
width40%

Without re-running the simulation, here is the Viewport Preview showing the result of the simulation so far.

UI Text Box
sizemedium
typenote

If you don't see any smoke in the viewport, please make sure you have selected the correct viewport. By default, the Preview rollout's Active View Only option is enabled, so only the selected viewport shows the GPU preview.

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

 

Slow Down the Smoke

...

Section
Column
width40%

Our final goal for the simulation is a smooth, natural-swirling, cigarette smoke look. So all of the following steps aim at this goal. Now the smoke appears to be running too fast.

To slow it down, change the Time Scale from 1.0 to 0.7.

Column
width60%

...

Section
Column
width40%

Here is how the simulation looks so far.

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

 

Adding Phoenix FD Turbulence for Smoke Swirls

...

Section
Column
width40%

Here is a Viewport Preview showing the result of the simulation so far.

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

 

Smoke Opacity Modulation

...

Section
Column
width40%

Here's a rendered animation so far.

UI Text Box
sizemedium
typetip

Notice how the cloudy texture is stretched horizontally - the noise spots in it are wide and thin. This is because the initial Simulator size at frame 0 (before the adaptive grid starts expanding) is a wide box, and the noise is stretched over it. You can adjust the tiling of the texture in the material editor if you want to counter this.

UI Text Box
sizemedium
typeinfo

Note how the uniformly scattered white spots ("islands") get dragged as the smoke is floating up and are stretched into thin wisps. This effect is the product of fluid advection. This is a part of the look of the effect we are aiming at.

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

 

...

 

Section
Column
width40%

Now, let's modulate the Smoke Opacity.

Set the Smoke Opacity to be Based on Simple Smoke.

Enable the Modulate option.

Keep the Noise texture that we used in the previous step and change the following settings:

Set the Size to 0.2;

Noise Threshold High to 0.5Low to 0.45;

Levels to 2.0.

Column
width60%

...

Section
Column
width40%

Here is a Viewport Preview showing the result of the simulation so far. You can see that currently there is an issue in the video. Some smoke areas are appearing out of nothing during the animation. This is because as the fluid travels through space, it meets new "islands" of opacity and starts dragging them along. Which makes parts of the fluid suddenly appear.

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

 

...

 

Section
Column
width40%

Now you understand how this technique works and its possible side effects.

Let's adjust the final Noise texture for the texture slot of the Smoke Opacity. The settings for the texture are now optimized in order to minimize the unnatural look of suddenly appearing/disappearing islands of smoke.

Plug in a new Noise texture in the Texture slot.

UI Text Box
sizemedium
typeinfo

You can set up the Noise texture from scratch or you can find this texture in the "PhoenixFD_Thin_Smoke_Max2016_END.max" scene file, in the material editor. It is called "Noise_final".

 

As shown, set the Noise Type to Turbulence.

Size to 0.1.

Noise Threshold High to 0.8, Low to 0.32.

Levels to 5.0.

Keep the UVW Tiling to 1.0.

For the Coordinates, set Source to Explicit Map Channel. By doing so we can take advantage of Phoenix FD's grid Texture UVW.

Column
width60%

...

Section
Column
width40%

Here is a rendered animation of the simulation so far.

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

 

...

 

Section
Column
width40%

The smoke looks quite choppy, but we are going for a smoother look. The noise in the smoke is caused by the Vorticity parameters in the Dynamics rollout of the Simulation. We can resolve this by reducing the Smoke Surface Vorticity to 0.

Go to the Fire/Smoke Simulator and run the simulation again.

Column
width60%

...

Section
Column
width40%

Now we have smoother simulation results.

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

 

...

 

Section
Column
width40%

To achieve a better swirling motion in the simulation, we can change the conservation mode and increase the Conservation Quality parameter under the Dynamics rollout. Set the Conservation Mode to PCG Symmetric, Quality to 50.

The PCG Symmetric conservation mode is ideal for smoke simulations or explosions because it tends to produce strong conservation which needs less conservation quality in order to look realistic. This method is also used for the Cigarette Smoke quick preset. So we choose this mode.

Go to the Fire/Smoke Simulator, and run the simulation again.

UI Text Box
sizemedium
typewarning

Beware that increasing the Quality would make the simulation take longer time. You can adjust the value depending on your preferences.

Column
width60%

...

Section
Column
width40%

Here is an animation showing what we've achieved so far. You can see the better swirling and rolling of the smoke. The behavior is now more like that of a thin smoke.

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

 

Bullet-time effect

...

Section
Column
width40%

Now, in order to make our animation more interesting, we can animate the Time Scale. This section of the tutorial is optional – you may skip to the Rendering section below.

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

Frame 0: 0.7
Frame 100: 0.7
Frame 130: 0.3
Frame 145: 0.3
Frame 164: 0.7

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

Column
width60%

...

Section
Column
width40%

And this is our final animation.

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

 

The Cigarette Smoke Quick Preset

...

Section
Column
width40%

We have already finished this tutorial. But since Phoenix FD comes with a Cigarette Smoke Quick Preset, let's see the same settings as shown in this tutorial but using the quick preset.

The quick preset is a particle-based method, which emits a large amount of particles from Fire/Smoke source and renders with the help of the Particle Shader. Because of the nature of this method, you need lots of particles in the scene. Furthermore, the particle size has to be small enough to alleviate grainy look. See the rendered clip of the cigarette smoke quick preset simulation.

UI Text Box
sizemedium
typeinfo

You can find the finished Particle-based scene in the Downloadable project file "PhoenixFD_Thin_Smoke_Particle_Max2016_END.max".

Column
width60%

 

Align
align
 
center
HTML
<iframe width="640" height="360" src="https://www.youtube.com/embed/rA-FQPHqb2M?version=3&loop=1&playlist=rA-FQPHqb2M" frameborder="0" allowfullscreen></iframe>

 

...

 

Section
Column
width40%

Here we summarized the pros and cons of the two methods.

The technique we demonstrate in this tutorial creates softer and smoother results. The simulation and rendering are very fast compared to the particle-based ones. However, you can get more accurate results when using the cigarette smoke quick preset.

Feel free to use whichever method suits you best for a project.

Column
width10%

 

 

 

Column
width60%

Using TexUVW for Creating Thin Smoke (this tutorial)

Cigarette Smoke Quick Preset

Texture UVW Based

Particle Based

Very smooth results even with low grid resolution

Requires tons of small particles for smoother results, otherwise looks grainy

Soft but less accurate

Sharp and accurate

Fast simulation

Takes more time for simulation

Fast rendering

Slower rendering

Requires Grid Texture UVW channel data

Emitting particles is necessary

Once the simulation is set up, only the Noise texture can be adjusted without simulating againMost changes in the look of the effect require simulating again