Versions Compared

Key

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

...

Section
Column
width40%

Requires Phoenix FD 3.12.00 Official Release and V-Ray NEXT Official Release for Maya 2015 or newer. You can download official Phoenix and V-Ray from https://download.chaos.com. 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 Burning Chair effect using Phoenix and Maya.

The emission of fire is modulated by a hand-painted texture map used as a mask for the Phoenix Fire Source. Many Dynamics parameters related to Fire/Smoke simulations are explained in detail, with videos showing their effect on the simulation. The simulation is then written to disk, and the resulting cache files are used for the Phoenix Resimulation process to slow down the movement of the flames.

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

 

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

Column
width60%

Image Modified

 

Units Setup

...

Section
Column
width40%

The final scene consists of the following elements:

  1. The chair geometry.
  2. A Phoenix Fire/Smoke Source with the chair geometry inside the source's emission set. A Composite Texture multiplying a hand-painted Texture Map and a Volume Noise Map is used to modify the Discharge.
    The Fire Source is also emitting Drag Particles into the simulation. The Drag particles are used to represent embers.
  3. A Phoenix Simulator for the fire.
  4. A Phoenix Plain Force to generate Wind blowing in the positive X direction.
  5. A Phoenix Particle Shader to render theDrag Particles.
  6. A V-Ray Infinite Plane for the ground.
Column
width60%

Image Modified

 

 

Scene Setup


Section
Column
width40%

Start by opening the 001_start.ma file.

The provided file contains the chair geometry with very basic UV mapping applied to it by going to UV → Automatic.

If you plan to use your own geometry rather than the provided chair, make sure to generate UVs for it. The quality of the UV mapping is of no concern for this tutorial - we use Maya's 3D Paint Tool to draw a texture specifying where the fire emission happens.

The Phoenix Source can use this texture to limit the emission only to those parts of the emission geometry which you have painted over.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Select the chair geometry and left-click on the Burning Fuel with Smoke preset from the Phoenix Toolbar.

This will generate an entire setup for you consisting of a Phoenix Simulator, a Phoenix Fire Source, and a Phoenix Particle Shader node used for rendering the Drag Particles produced by the Source.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Phoenix provides a high-quality GPU Preview directly in the Maya Viewport which should be enabled by default by the Burning Fuel preset.

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

To do so, go to the Preview rollout → GPU Shade Preview → Enable GPU Preview.

The GPU Preview section of the Preview rollout also contains Lighting controls which only affect the Viewport preview and not the rendering.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Here's how the simulation looks with the default Burning Fuel preset.

As you can see from the video to the right, there are plenty of issues to address:

  1. The emission is uniform - the entire chair is burning instead of only certain sections of it. We will first take care of that by using Maya's Paint 3D Tool to to specify where the emission happens through a Texture map.

  2. The fire is too choppy - we are going for a smoother / calmer look. The noisiness in the fire is caused by the low grid resolution, the Vorticity parameters in the Dynamics rollout of the Simulator, and to a lesser extent - the shading settings set up in the Rendering → Volumetric Options → Fire window. We resolve this by disabling the Vorticity parameters and tweaking the Fire rendering Color and Intensity curve of the volumetric shader.

  3. The fire is moving rather quickly - this would be the desired behavior when simulating a burning flammable fluid but instead we would like to achieve a smoother flame. Think of a campfire - the flames produced by the Burning Fuel preset don't resemble the calm and elongated fire produced by burning wood. We resolve this by slowing down the cached sequence from the Input panel and Re-simulating over the slowed-down cache files with the Time-Bend Resimulation option enabled.
Column
width60%
videoautoplayloop
Align
0001_burningFuelPreset.mp4
1800
2450
3true
4false
5true
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/KqJyGVpdwck?version=3&loop=1&playlist=KqJyGVpdwck" frameborder="0" allowfullscreen></iframe>

 

Varying the Emission with a hand-painted texture map

...

Section
Column
width40%

Here's how the simulation looks with the Texture Map modifying the Discharge.

We still need to tweak the simulation parameters and make some speed optimizations along the way.

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

 

...

 

Section
Column
width40%

Select the Phoenix Simulator and open the Grid rollout. 

Set the Scene Scale to 1.5 - this will slightly slow down the simulation. 

Set the Cell Size to 0.65 and change the  X / Y / Z dimensions of the grid such that the painted areas of the chair are included in the bounds of the simulator box. This will save some simulation time as those empty voxels will not be calculated in vain. 

The exact position of the Phoenix Simulator is Translate X/Y/Z: (20, 90, -25).

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Set the Adaptive Grid option to Smoke, and the Threshold to 0.02. The Adaptive Grid option allows the container to grow in size once the content of the specified channel near the walls of the simulator reaches the Threshold value. In this case, the container will increase in size when there is smoke near the walls. 

Enable the Expand and Don't Shrink option - because fire simulations tend to be turbulent, it is possible that a certain portion of the container will oscillate between being completely empty and filled with smoke/temperature. This could cause the Adaptive Grid option to constantly resize the bounds of the simulation, producing undesirable results (such as sharply cutting off the fire). 

Enable Manual Adaptation Limits and set the X / Y / Z dimensions according to your needs. In this tutorial, a Phoenix Plain Force is used to add wind blowing from the left so extra space is provided to the right where the fire is expected to go. 

 Set the Extra Margin to 5 - 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 Modified

 

...

 

Section
Column
width100%

...

Section
Column
width40%

Here's how the simulation looks with the higher Discharge rate and reduced Cell Size:

Note that we also tweaked the Scene Scale parameter which affects all the dynamics of the Phoenix Simulator.

Because the fire still looks too uniform, in the next step we use a Composite node to multiply the painted texture with a Volume Noise.

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

 

Modifying the Discharge with a Volume Noise Texture

...

Section
Column
width40%

Animate the Translate Z coordinate of the 3d Placement node connected to the Volume Noise texture such that it goes from 0 to 20 over the span of frames 0 to 60.

Make sure to set the tangents of the animation curve to Linear from Windows → Animation Editors → Graph Editor.

Animating the placement node will move the noise field as the simulation progresses which adds additional randomness to the emission.

Column
width60%

 

...

 

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

static Volume Noise texture

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

animated Volume Noise texture

 

Phoenix Simulator Properties

...

true
Section
Column
width40%

Here's the simulation with Time Scale set to 0.6.

As you can see from the video to the right, the fire is now slightly less turbulent. This is going in the right direction for us.

See the video below.

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

 

...

 

true
Section
Column
width40%

Here's how things changed after reducing the Cooling to 0.1.

The flames are now longer - as they should be with this type of burning.

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

 

...

 

Section
Column
width40%

Turning off the Vorticity removed the noisiness in the simulation.

In the next step, we add some detail back into the sim by setting the Conservation Method to Buffered.

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

 

...

 

Section
Column
width40%

Still under the Dynamics rollout, in the Conservation section, set the Method to Buffered, with a Quality of 40, and disable Uniform Density.

You may tweak the Steps per Frame parameter if your setup requires it.

A higher Steps per Frame value will produce a smoother simulation. This is usually required if the emitter object is moving quickly and producing stepping in the emission, or the outgoing velocity is so high that the fluid becomes noisy. Try to keep this parameter to a value as low as possible because it increases your simulation time linearly, i.e. increasing it twice will increase the simulation time twice. For an in-depth explanation, please check the Steps Per Frame documentation.

Column
width60%

...

Section
Column
width40%

Here's the results with the Buffered Conservation method, Quality of 40 and Uniform Density disabled.

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

 

...

 

Section
Column
width40%

To add additional realism to the simulation, we use a Phoenix Plain Force to simulate the effect of wind.

Go to the FX menu set → Phoenix FD → Create and add a Phoenix Plain Force. The Plain Force is a simple directional force.

Rotate it so it points in the positive X direction and set the Strength to 250.

The exact Translate X/Y/Z values are: (-30, 150, -30).

The exact Rotation X/Y/Z values are: (0, 90, 0).

Column
width60%

Image Modified

 

...

 

UI Text Box
typeinfo
Section
Column
width40%

To see how a force will affect the simulation, add it to the Force Preview set of the Phoenix Simulator. Then, under the Preview rollout, enable Forces.

Disable the GPU Preview if enabled - the Force Preview won't show up otherwise.

To add a force to the Force Preview set, Middle-Mouse-Button click&drag the target force then drop it inside the phxforceprv_set1 (default name).

This will generate a collection of arrows showing you the direction of the force. You can control the density of the arrows with the Detail Reduction parameter at the top of the Preview rollout.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

After adding the Plain Force, the fire is blown to the right instead of going straight up.

Some extra detail in the flames is also revealed.

UI Text Box
typetip

You could experiment with other forces as well. A Phoenix Turbulence force with a low Fractal Depth (so that the noise is not grainy) could give you a good result as well.

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

 

Phoenix Render Settings

...

Section
Column
width40%

Open the Phoenix Simulator's Rendering rollout. The Rendering rollout contains all the shading and rendering parameters necessary for a Fire/Smoke simulation.

UI Text Box
typetip

You can gain a decent rendering speed-up by increasing the Step% parameter in the Rendering rollout during the look development stage.

The Step% controls the ray marching step of the camera rays as a percentage of the cell size. As the renderer traces rays through the simulator, this value controls how often to get information from the grid. If this value is more than 100, some cells will start getting skipped and artifacts may appear but rendering will be faster. For the final render, reduce this value back to 20 as the toolbar preset set it.

Column
width60%

...

Section
Column
width40%

Here's how a rendered image looks before any tweaks of the Volumetric Shader.

As you can see, the fire is too bright, and detail in the flames can hardly be noticed.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Open the Simulator → Rendering rollout → Smoke Opacity rollout and set Based on to Smoke

Set the second curve point in the Opacity Diagram to X: 1.0, Y: 0.3. This will tell the volumetric shader to render the smoke such that the densest areas of the smoke channel will render with a maximum opacity of 0.3.

Column
width60%

...

Section
Column
width40%

Here's how a rendered image looks with the volumetric shader tweaks.

The fire still looks a bit noisy - the resimulation will take care of that.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

For a nicer looking image, you can enable Bloom and Glare effects from the Lens Effects panel in the V-Ray Frame Buffer.

The White Balance → Temperature is increased to 8300 to further warm up the image.

Column
width60%

...

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, under the Animation Menu Set → Key → Scene Time Warp select the Add Scene Time Warp option. If you accidentally de-select it, use the Select Scene Time Warp option.

With the Time Warp selected, open the Windows → Animation Editors → Graph Editor and move the right point on the animation curve to Frame 120 (it should currently be at Frame 60 if you are following along with the provided scene file). This will stretch all animation curves in the scene by a factor of two. Note that the only animated object in our scene is the Place3d node for the Volume Noise texture - instead of moving 20 units in Z over the span of frames 0-60, it will now do it over the span of frames 0-120.

Extend the Timeline to 120 frames.

UI Text Box
typewarning

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

If you have 60 frames simulated, apply a Scene Time Warp 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%

Image Modified

 

...

 

Section
Column
width40%

Now that the animation speed of the scene objects is reduced in half, we need to do the same for the Phoenix Simulation.

Open the Input rollout and set the Play Speed to 0.5.

Set the Blending Method method to Velocity.

UI Text Box
typeinfo

The Play Speed parameter works as a multiplier for the Playback speed. When set to 1, it reads one cache file for each corresponding timeline frame. If the value is not precisely 1, Phoenix generates an intermediate frame by blending the two adjacent cached frames.

This Blending process works really well with FLIP (water) simulations as FLIP particles are fixed points in space, and consequently, the in-between particle positions can be easily determined from the previous and next frames' cache files.

For Fire/Smoke simulations, however, more advanced techniques are required to achieve a slow-down effect.

Reducing the Play Speed is good enough for most Smoke simulations but attempting to blend Fire simulations tends to produce flickering in the fire intensity. The way around this issue is to slow down the simulation from the Input → Play Speed and run a Resimulation. Since the Resimulation process reads the cache files as specified in the Input panel, this will recalculate the dynamics at the reduced speed and provide you with a smoothly slowed-down simulation.

Column
width60%

Image Modified

 

...

BurningFuel_Comparison_2.mp41100%2100% 

...

 

 

Section
Column
width40%

Open the Resimulation rollout and enable Resimulate. Set the Affect drop-down to Both.

Note that when you enable Resimulation, Phoenix will try to read the cache files for preview and rendering from the Resimulation Output Path instead of the 'regular' Output. Don't be alarmed if the Viewport goes blank - you can always go back to the original cache files by simply disabling the Resimulate toggle.

The Grid Resimulation takes care of the Temperature/Smoke/Velocity Grid Channels while the Particle Resimulation will affect the Drag particles emitted by the fire source.

Set the Amplify Resolution to 0. This parameter is used to increase the resolution of the grid for the Resimulation process only (just like the Cell Size in the Grid rollout controls the simulator's resolution). Because we only want to recalculate the cached sequence, we leave the Amplify Resolution at 0.

Enable Use Time Bend Controls and set the Time Bend Method to Slow Down. This option works great when trying to produce a slower version of your base simulation, as is the case with our fire.

Set Wavelet Strength to 0.01. Wavelet Turbulence is used to generate wispy detail in a simulation but we're not looking to add additional details so the Strength is reduced to its lowest possible value.

UI Text Box
typeinfo

If you want to use Wavelet Turbulence, you need to Enable Wavelet Grid channel export from the Output rollout of the simulator. Note that it will take effect only if Amplify Resolution is above 0.

Column
width60%

Image Modified

 

...

 

Section
Column
width40%

Set Simulator → Dynamics → Steps per Frame to 1 so you don't lose detail in the re-simulation process.

UI Text Box
typeinfo

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. Simulating continuous burning fire is one of the rare cases where we can get away with changing the Steps per Frame without dramatically changing the shape of the fluid after Time-Bend resimulation.

Column
width60%

Image Modified

 

...

 

Section
Column
width50%
Videoautoplayloop
0001_render_BeforeTimeBendResim.mp4
1600
2337
3true
4false
5true
before Time Bend resimulation
40%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/Eo7d-rLA52c?version=3&loop=1&playlist=Eo7d-rLA52c" frameborder="0" allowfullscreen></iframe>
Column
width40%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/0V06D8YoE_k?version=3&loop=1&playlist=0V06D8YoE_k" frameborder="0" allowfullscreen></iframe>
Column
width50%
 
Videoautoplayloop
0001_render_AfterTimeBendResim.mp4
1600
2337
3true
4false
5true
after Time Bend resimulation

 

...

 

Section
Column
width40%

You can use the Amplify Resolution option to add extra detail to the simulation during the Resimulation process.

The Amplify Resolution setting controls the number of voxels that will be used for the grid during resimulation.

Here's the simulation above, resimulated with Amplify Resolution of 1.

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

 

...

 

Section
Column
width40%

The painted Vertex Color on the chair geometry will heavily affect the simulation result.

You can always go back to the Texturing → 3D Paint tool and tweak the emission texture.

Column
width60%

 Image Modified

 

...

 

true
Section
Column
width40%

Here is a simulation with the emission pattern from the picture above, with an Amplify Resolution value of 1.0 for the Resimulation.

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

 

Camera and Lighting

...

Section
Column
width40%

As mentioned in the beginning, the only illumination source for this scene is the fire itself.

The scene file called 001_start.ma already has the cameras set up for you. However, for reference, here are their properties:

Focal Length: 90

A V-Ray Physical Camera is used for the rendering with the following settings:

F-Number: 2.4

Shutter Speed: 200

ISO: 100

Vignetting: Disabled

Column
width60%

Image Modified

Viewtracker
hidetrue
renderusernamesfalse