Versions Compared

Key

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

This page provides a tutorial on creating a Burning Chair simulation with Chaos Phoenix FD in 3ds Max.

HTML
<style>
.tooltip {
    position: relative;
    display: block;
	border-bottom: 1px dashed black;
}
.tooltip .tooltiptext {
    visibility: hidden;
    width: 400px;
    background-color: #555;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px 25px;
    position: absolute;
    z-index: 1;
    left: 50%;
    margin-left: 15px;
    opacity: 0;
    transition: opacity 0.3s;
	display: block
}
.tooltip:hover .tooltiptext {
    visibility: visible;
    opacity: 1;
}
</style>
 
<script type="text/javascript">

    AJS.toInit(function(){

		var toolbar_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23694081";
		var fireSimulator_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693597";
		var fireSource_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693882";
		var particleShader_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693898";
		var plainForce_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693935";
		var gridPreview_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693676";
        var gridResimulation_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693609";
		var gridGrid_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693620"
		var gridOutput_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693665";
		var gridFuel_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693655";
		var gridDynamics_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693626";
		var gridRendering_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693685";
		var gridSmokeOpacity_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693733";
		var gridSmokeColor_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693727";
		var gridFire_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693706";
		var gridInput_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693669";
		var gridResimulation_page = "https://docs.chaosgroup.com/pages/viewpage.action?pageId=23693609";
 
		AJS.$("#Toolbar_info").load(toolbar_page + " #Toolbar_Overview");
		AJS.$("#FireSimulator_info").load(fireSimulator_page + " #FireSmoke_Overview");
		AJS.$("#FireSource_info").load(fireSource_page + " #FireSource_Overview");
		AJS.$("#FireSource_OutVelocity_info").load(fireSource_page + " #FireSource_OutVelocity");
		AJS.$("#FireSource_OutVelocity_Mask_info").load(fireSource_page + " #FireSource_OutVelocity_Mask");
		AJS.$("#FireSource_OutVelocity_Mask_info2").load(fireSource_page + " #FireSource_OutVelocity_Mask");
		AJS.$("#ParticleShader_info").load(particleShader_page + " #ParticleShader_Overview");
		AJS.$("#PlainForce_info").load(plainForce_page + " #PlainForce_Overview");
		AJS.$("#Preview_info").load(gridPreview_page + " #FireSmoke_Preview_Overview");
		AJS.$("#Preview_enable_info").load(gridPreview_page + " #Preview_GPUPreview_Enable");
		AJS.$("#Preview_lighting_info").load(gridPreview_page + " #Preview_GPUPreview_Lighting");
        AJS.$('#GridResimulation_info').load(gridResimulation_page + "  #GridResimulation_AmpResolution");
		AJS.$("#GridGrid_info").load(gridGrid_page  + " #FireSmoke_Grid_Overview");
		AJS.$("#GridGrid_SceneScale_info").load(gridGrid_page + " #FireSmoke_Grid_SceneScale");
		AJS.$("#GridGrid_CellSize_info").load(gridGrid_page + " #FireSmoke_Grid_CellSize");
		AJS.$("#GridGrid_XYZ_info").load(gridGrid_page + " #FireSmoke_Grid_XYZ");
		AJS.$("#GridGrid_AdaptiveGrid_info").load(gridGrid_page + " #FireSmoke_Grid_AdaptiveGrid");
		AJS.$("#GridGrid_Threshold_info").load(gridGrid_page + " #FireSmoke_Grid_Threshold");
		AJS.$("#GridGrid_ExpandAndDontShrink_info").load(gridGrid_page + " #FireSmoke_Grid_ExpandAndDontShrink");
		AJS.$("#GridGrid_MaximumExpansion_info ").load(gridGrid_page + " #FireSmoke_Grid_MaximumExpansion");
		AJS.$("#GridGrid_ExtraMargin_info").load(gridGrid_page + " #FireSmoke_Grid_ExtraMargin");
		AJS.$("#FireSource_EmitterNodes_info").load(fireSource_page + " #FireSource_EmitterNodes")
		AJS.$("#FireSource_EmitMode_info").load(fireSource_page + " #FireSource_EmitMode");
		AJS.$("#FireSource_OutVelocity_info2").load(fireSource_page + " #FireSource_OutVelocity");
		AJS.$("#FireSource_Fuel_info").load(fireSource_page + " #FireSource_Fuel");
		AJS.$("#FireSource_Smoke_info ").load(fireSource_page + " #FireSource_Smoke");
		AJS.$("#FireSource_Temperature_info").load(fireSource_page + " #FireSource_Temperature");
		AJS.$("#FireSource_Particles_info").load(fireSource_page + " #FireSource_Particles");
		AJS.$("#FireSource_ParticlesExport_info").load(fireSource_page + " #FireSource_ParticlesExport");
 
		AJS.$("#FireSmoke_Output_Overview_info").load(gridOutput_page + " #FireSmoke_Output_Overview");
 		AJS.$("#FireSmoke_Output_Fuel_info").load(gridOutput_page + " #FireSmoke_Output_Fuel");
		AJS.$("#FireSmoke_Output_Velocity_info").load(gridOutput_page + " #FireSmoke_Output_Velocity");
 
		AJS.$("#FireSmoke_Fuel_Overview_info").load(gridFuel_page + " #FireSmoke_Fuel_Overview");
		AJS.$("#FireSmoke_Fuel_EnableBurning_info").load(gridFuel_page + " #FireSmoke_Fuel_EnableBurning");
 
		AJS.$("#FireSmoke_Dynamics_Overview_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Overview");
		AJS.$("#FireSmoke_Dynamics_TimeScale_info").load(gridDynamics_page + " #FireSmoke_Dynamics_TimeScale");
        AJS.$("#FireSmoke_Dynamics_Cooling_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Cooling");
        AJS.$("#FireSmoke_Dynamics_SmokeDissipation_info").load(gridDynamics_page + " #FireSmoke_Dynamics_SmokeDissipation");
        AJS.$("#FireSmoke_Dynamics_Vorticity_info").load(gridDynamics_page + " #FireSmoke_Dynamics_VorticityClassic");
        AJS.$("#FireSmoke_Dynamics_Randomize_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Randomize");
 		AJS.$("#FireSmoke_Dynamics_Conservation_Overview_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Conservation_Overview");
		AJS.$("#FireSmoke_Dynamics_Conservation_Method_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Conservation_Method");
		AJS.$("#FireSmoke_Dynamics_Conservation_Method_Buffered_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Conservation_Method_Buffered");
		AJS.$("#FireSmoke_Dynamics_Conservation_Quality_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Conservation_Quality");
		AJS.$("#FireSmoke_Dynamics_Conservation_UniformDensity_info").load(gridDynamics_page + " #FireSmoke_Dynamics_Conservation_UniformDensity");
 
		AJS.$("#PlainForce_info2").load(plainForce_page + " #PlainForce_Overview");
 
		AJS.$("#FireSmoke_Rendering_Overview_info").load(gridRendering_page + " #FireSmoke_Rendering_Overview");
	 	AJS.$("#FireSmoke_Rendering_VolumetricOptions_info").load(gridRendering_page + " #FireSmoke_Rendering_VolumetricOptions");
		AJS.$("#FireSmoke_SmokeOpacity_Overview_info").load(gridSmokeOpacity_page + " #FireSmoke_SmokeOpacity_Overview");
		AJS.$("#FireSmoke_SmokeOpacity_BasedOn_info").load(gridSmokeOpacity_page + " #FireSmoke_SmokeOpacity_BasedOn");
		
		AJS.$("#FireSmoke_SmokeColor_Overview_info").load(gridSmokeColor_page + " #FireSmoke_SmokeColor_Overview");
 		AJS.$("#FireSmoke_SmokeColor_ConstantColor_info").load(gridSmokeColor_page + " #FireSmoke_SmokeColor_ConstantColor");
		AJS.$("#FireSmoke_SmokeColor_Scattering_info").load(gridSmokeColor_page + " #FireSmoke_SmokeColor_Scattering");
 		AJS.$("#FireSmoke_SmokeColor_Scattering_Approximate_info").load(gridSmokeColor_page + " #FireSmoke_SmokeColor_Scattering_Approximate");
 
		AJS.$("#FireSmoke_Fire_Overview_info").load(gridFire_page + " #FireSmoke_Fire_Overview");
		AJS.$("#FireSmoke_Fire_FireOpacityMode_info").load(gridFire_page + " #FireSmoke_Fire_FireOpacityMode");
		AJS.$("#FireSmoke_Fire_FireMultiplier_info").load(gridFire_page + " #FireSmoke_Fire_FireMultiplier");
		AJS.$("#FireSmoke_Fire_LightPowerOnSelf_info").load(gridFire_page + " #FireSmoke_Fire_LightPowerOnSelf");
 
		AJS.$("#FireSmoke_Input_Overview_info").load(gridInput_page + " #FireSmoke_Input_Overview");
		AJS.$("#FireSmoke_Input_PlaySpeed_info").load(gridInput_page + " #FireSmoke_Input_PlaySpeed");
		AJS.$("#FireSmoke_Input_FrameBlend_info").load(gridInput_page + " #FireSmoke_Input_FrameBlend");
		AJS.$("#FireSmoke_Input_FrameBlend_Velocity_info").load(gridInput_page + " #FireSmoke_Input_FrameBlend_Velocity");
 
		AJS.$("#FireSmoke_Resimulation_Overview_info").load(gridResimulation_page + " #FireSmoke_Resimulation_Overview");
		AJS.$("#FireSmoke_Resimulation_EnableParticle_info").load(gridResimulation_page + " #FireSmoke_Resimulation_EnableParticle");
		AJS.$("#FireSmoke_Resimulation_EnableGrid_info").load(gridResimulation_page + " #FireSmoke_Resimulation_EnableGrid");
		AJS.$("#FireSmoke_Resimulation_AmpResolution_info").load(gridResimulation_page + " #FireSmoke_Resimulation_AmpResolution");
		AJS.$("#FireSmoke_Resimulation_UseTimeBend_info").load(gridResimulation_page + " #FireSmoke_Resimulation_UseTimeBend");
		AJS.$("#FireSmoke_Resimulation_TimeBendMethod_info").load(gridResimulation_page + " #FireSmoke_Resimulation_TimeBendMethod");
		AJS.$("#FireSmoke_Resimulation_TimeBendMethod_SlowDown_info").load(gridResimulation_page + " #FireSmoke_Resimulation_TimeBendMethod_SlowDown ");
		AJS.$("#FireSmoke_Resimulation_WaveletStrength_info").load(gridResimulation_page + " #FireSmoke_Resimulation_WaveletStrength");
 
		AJS.$("#FireSmoke_Resimulation_AmpResolution_info2").load(gridResimulation_page + " #FireSmoke_Resimulation_AmpResolution");
    });
</script>

 

Overview

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.

Section
Column
width40%

Requires Phoenix 3.10.00 Official Release and V-Ray 3.60.04 Official Release for 3ds Max 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 3ds Max.

The emission of fire is modulated by a VertexPaint modifier coupled with a Vertex Color texture 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=1fqXR7shB8g1gB7NoM0WEXP--MWKugtbp

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

 

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.

A burning piece of furniture would be considered a small-scale simulation so we will 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%

Image Added

 

Scene Layout


Section
Column
width40%

The final scene consists of the following elements:

  1. The chair geometry with a VertexPaint modifier.
  2. A Phoenix Fire/Smoke Source with the chair geometry in its list. A Vertex Color texture is used as a Mask for the Outgoing Velocity parameter of the Source. The Vertex Color texture is reading the vertex data from the Vertex Paint modifier on the chair geometry. The Source is also emitting Drag Particles into the simulation. The Drag particles are used to represent embers.
  3. A Phoenix Fire/Smoke Simulator for the fire.
  4. Phoenix Plain Force used to imitate wind blowing in the positive X direction.
  5. Phoenix Particle Shader to render the Drag Particles of the Source as points.
  6. V-Ray Infinite Plane for the ground.
UI Text Box
typenote

Note that there are no light sources present in the scene. The only source of illumination for the final image is provided by the fire.

Column
width60%

Image Added

 

Scene Setup


Section
Column
width40%

Set the Time ConfigurationAnimation Length to 60 so that the Timeslider goes from 0 to 60.

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

Column
width60%

Image Added

 

Phoenix Setup


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 Fire/Smoke Simulator, a Phoenix Fire Source, and a Phoenix Particle Shader node used for rendering the Drag particles produced by the source.

Column
width60%

Image Added

 


 

Section
Column
width40%

Phoenix provides a high-quality GPU Preview directly in the 3ds Max 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 preview section → Enable in Viewport.

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

You can also disable the Lighting altogether which will cause only the fire to be visible in the Viewport.
Column
width60%

Image Added

 


 

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 a VertexPaint modifier to specify where the emission happens.

  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 Simulation, 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 resimulating over the slowed-down cache files with the Time-Bend Resimulation option enabled.
Column
width60%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/nvVAe6Or7s0?version=3&loop=1&playlist=nvVAe6Or7s0" frameborder="0" allowfullscreen></iframe>

 

Varying the Emission with Vertex Color Texture


Section
Column
width40%
UI Text Box
typeinfo

At the moment, the entire chair geometry is used for fire/smoke emission. This produces a homogeneous flame which looks unrealistic.

To break up the emission, we use a VertexPaint modifier to specify where the emission happens. We can then extract the painted information using a Vertex Color texture and apply that as a mask to the Outgoing Velocity parameter of the Phoenix Fire Source.

Select the chair geometry and apply a VertexPaint modifier. A VertexPaint toolbar should appear in the 3ds Max UI. If you accidentally close it, use the Edit... button under the VertexPaint modifier to bring it back.

Click the left-most icon at the top of the toolbar to set the Vertex Color display to Unshaded - this makes it easier to see what you're doing.

Then, set the Color to Black (0, 0, 0) and use the Paint Bucket icon to make the entire chair black.

Activate the Brush tool, set the Color to White (255, 255, 255) and paint the areas that you want to be burning.

When finished, click the 3-rd icon (left to right) at the top to disable the vertex color preview.

Column
width60%

Image Added

 


 

Section
Column
width40%

Open the Material Editor and create a Vertex Color texture. The Vertex Color texture can read the color information that we just painted on the chair geometry.

You can directly pipe its output into the Outgoing Velocity Mask of the Phoenix Source.

However, in this tutorial, we add additional variation by compositing the Vertex Color texture over a Cellular texture using a VRayComp texture.

 

Add a VRayComp texture and feed the output of the Vertex Color to the SourceA input.

Set the Operator to Multiply (A*B).

 

Then, add a Cellular texture and feed its output to the SourceB input of the VRayComp texture.

Left-Mouse-Button click and drag from the VRayComp texture's output to the Outgoing Velocity Mask parameter of the Phoenix Fire Source.

 

The painted Vertex Color on the chair geometry will heavily affect the simulation result. You can always go back to the VertexPaint modifier and tweak the color.

Column
width60%

Image Added

 


 

Section
Column
width40%

Set the Cellular type to Circular, with a Size of 2.0 and a Spread of 0.25. Those values are an artistic choice and in no way set in stone - feel free to change them if your setup requires it.

Animate the Offset X parameter to go from a value of 0 to 5 over the range of frames 0 to 60. This will cause the sampling coordinates for the Cellular noise to shift over time, adding one more layer of randomness to the emission.

Open the Curve Editor and set the tangents for the animation to Linear.

If you can't find the Cellular texture coordinates in the list, make sure to disable the Show Only filters under the View → Filters options box. You should then be able to find it under SME → Map # → Properties → Coordinates.

This is done so the animation of the Cellular noise doesn't speed up in the beginning and slow down at the end, which is the effect of the default Ease In - Ease Out tangents.

Column
width60%

Image Added

 


 

Section
Column
width40%

Here's how the simulation looks with the VRay Comp texture used as a Mask for the Outgoing Velocity.

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

Column
width60%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/zOAtPBQncZ4?version=3&loop=1&playlist=zOAtPBQncZ4" 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.

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 Maximum Expansion 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 Added

 


 

Section
Column
width100%

Image Added

 


 

Section
Column
width40%

Select the Phoenix Fire Source created by the Burning Fuel preset and make sure that the Chair geometry is included in the Emitter Nodes list at the top.

By default, the Emit Mode should be set to Surface Force - this will produce flames only on the surface of the emission geometry.

Set the Outgoing Velocity to 400cm. The Outgoing Velocity parameter controls the strength of the emission. If you'd like the flames to be calm and short, reduce this value accordingly.

Disable Fuel, and enable Smoke and Temperature emission. The Burning Fuel preset we selected earlier sets up a simulation that uses the fuel channel to produce temperature and smoke - this behavior is controlled from the Fuel rollout of the Phoenix Simulator.
However, instead of relying on this, a much simpler and easier to control way to produce fire is to only emit Smoke and Temperature, and to tweak the Shading/Rendering options as necessary. Fuel and burning are better suited for explosive effects.

Set the Particles value to 2.5 - this parameter controls the number of particles (in thousands) born each second. We emit Drag particles to represent the embers produced by the process of burning.
Drag particles are simply Phoenix's version of Particle Advection. As the simulation progresses, the Drag particles are carried (dragged) along by the Velocity channel together with the smoke.

Make sure to enable Export Drag Particle IDs - Phoenix needs the IDs for the Resimulation process. If you want to render with motion blur, you also need to enable output of Drag Particle Velocity from the Source.

Column
width60%

Image Added

 


 

Section
Column
width40%

Open the Output rollout of the Phoenix Simulator and disable Fuel. As discussed earlier, we don't make use of the Fuel channel so there is no point exporting it.

Enable Grid Velocity export - the Velocity channel is required when doing a Resimulation, and also when rendering the simulation with Motion Blur.

UI Text Box
typeinfo

If you'd like to run a Resimulation that uses the Wavelet turbulence options in the Resimulation rollout for increasing the resolution and adding extra swirls, you also need to enable the Wavelet channel export in the Output rollout.

Column
width60%

Image Added

 


 

Section
Column
width40%

Open the Fuel rollout and deselect Enable Burning.

This option was enabled by the Burning Fuel with Smoke preset we used as a starting point. Since we disabled the emission of fuel, the burning process will not be utilized and keeping this enabled will only consume resources in vain.

Column
width60%

Image Added

 


 

Section
Column
width40%

Here's how the simulation looks with the higher Outgoing Velocity rate and reduced Cell Size.

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

The fire is still too turbulent and noisy for our purpose so we take care of that next.

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

 

Phoenix Simulator Properties


Section
Column
width40%

Select the Simulator and open the Dynamics rollout.

Set the Time Scale to 0.6. The Time Scale option works as a multiplier for the velocity in the simulation. The lower this value is, the lower the effect of the forces and dynamics parameters such as buoyancy, vorticity, etc. will be.

Reduce the Cooling to 0.1. This parameter will heavily influence the height of the flames in the simulation. Reduce it for taller flames, increase it for shorter ones.

Set the Smoke Dissipation to 0.3. The effect of this change will only be visible in the smoke. You may omit this step in case you plan to only render the fire.

Set all the Vorticity and Randomize parameters to 0 to disable them entirely. For this simulation, we rely on the detail produced by the emission textures and the Buffered Conservation method.

Column
width60%

Image Added

 


 

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.

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

 


 

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

 


 

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%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/2y-dRSEu79Y?version=3&loop=1&playlist=2y-dRSEu79Y" 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. For this tutorial, the Steps Per Frame are set to 2. 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.

Column
width60%

Image Added

 


 

Section
Column
width100%

Image Added

 


 

Section
Column
width100%

Image Added

 


 

 

Section
Column
width100%

Image Added



 

 

Section
Column
width100%

Image Added

 


 

Section
Column
width40%

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

Column
width60%
Align
aligncenter
HTML
<iframe width="800" height="450" src="https://www.youtube.com/embed/ClVu6NgJtoA?version=3&loop=1&playlist=ClVu6NgJtoA" 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 Helpers tab → Phoenix 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.

UI Text Box
typeinfo

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

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.

Note: if GPU preview is enabled, the Forces preview will not show up in the viewport.

Column
width60%

Image Added



 

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


Phoenix Render Settings


Section
Column
width40%

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

Image Added

 


 

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 Added 

 


 

Section
Column
width40%

Click the Volumetric Options button to access the Volumetric Shading settings.

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

Image Added

 


 

Section
Column
width40%

Open the Smoke Color rollout and set the Constant Color parameter to RGB (170, 170, 170) to make the smoke brighter.

Change the Scattering parameter to Approximate+Shadows. Scattering controls how the light rays are scattered inside the volume. The Ray-traced option tends to be much slower to render but physically-accurate while the Approximation options use internal Phoenix algorithms to speed up the rendering process. The difference between the Approximate and Approximate+Shadows is that the latter also affects the strength of shadows cast by the volume over the scene geometry.

Column
width60%

Image Added

 


 

Section
Column
width40%

Open the Fire rollout. This section controls the emissive (fire) color of the Volumetric Shader and the light emitted by the simulator. Unlike the Smoke Color which needs an external light to become visible, the fire will be visible immediately.

For this tutorial, the Fire Opacity Mode is set to Fully Visible, with a Fire Multiplier of 15. Reduce the Light Power on Self to 0.3.

The process of setting up the Intensity and Color Ramp will usually have the greatest impact on the shading of your fire simulation.

As you can see from the screenshot, there are a dozen or so manually placed colors on the ramp, and the curve has been edited too. Since it's not feasible to describe this in a tutorial, we provide you with a Render Preset file that you can load in your scene to get the exact same settings.

To load the provided preset, go to the Rendering → Render Presets button and select the Phoenix_Burning_Chair_Flames.tpr preset file that came with the project files for this tutorial.

Column
width60%

Image Added

 


 

Section
Column
width40%

Here's how a rendered image looks with the Volumetric Shader tweaks.

Column
width60%

Image Added

 


 

Section
Column
width40%

For a more realistic look to the fire, we'll add a V-Ray Distance texture so that the flames near the chair disappear.

Open the Material Editor and create a V-Ray Distance texture. This texture is a V-Ray specific procedural texture that returns a different color based on a point's distance to an object(s) specified in a selection list.

Keep the default settings as they are.

Then, add the chair_geo to the Objects list.

In our case, the Near Color is set to Black (0, 0, 0) and the Distance is set to 10, which means that the parts of the fire that are within a radius of 10 will not be rendered, and all parts that are at a distance greater than 10 will be rendered.

For more information, please check the V-Ray Distance texture page

Column
width60%

Image Added

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.10.00 Official Release and V-Ray 3.60.04 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 Burning Chair effect using Phoenix FD and 3ds Max.

The emission of fire is modulated by a VertexPaint modifier coupled with a Vertex Color texture used as a mask for the Phoenix FD 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 FD 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 FD 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=1Codz_nqrBDMDFvxgeToKJIpBwEvA28XI

Column
width60%

Image Removed

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.

A burning piece of furniture would be considered a small-scale simulation so we will 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%

Image Removed

 

 

Scene Layout

 

Section
Column
width40%

The final scene consists of the following elements:

  1. The chair geometry with a VertexPaint modifier
  2. HTML
    A 
    <div class="tooltip" style="display:inline">Phoenix FD Fire Source<div class="tooltiptext" id="FireSource_info">CONTENT NOT FOUND</div></div>
    with the chair geometry in its <strong>Emitter Nodes</strong> list.
    <br /> 
    A <strong>Vertex Color</strong> texture is used as a 
    <div class="tooltip" style="display:inline">Mask<div class="tooltiptext" id="FireSource_OutVelocity_Mask_info">CONTENT NOT FOUND</div></div>  
    for the 
    <div class="tooltip" style="display:inline">Outgoing Velocity<div class="tooltiptext" id="FireSource_OutVelocity_info">CONTENT NOT FOUND</div></div> 
    parameter of the Source. The Vertex Color texture is reading the vertex data from the <strong>Vertex Paint</strong> modifier on the chair geometry. 
    <br />
    The Fire Source is also emitting <strong>Drag Particles</strong> into the simulation. The Drag particles are used to represent embers.
  3. HTML
    A 
    <div class="tooltip" style="display:inline">Phoenix FD Fire/Smoke Simulator <div class="tooltiptext" id="FireSimulator_info">CONTENT NOT FOUND</div></div> 
    for the fire.
  4. HTML
    A 
    <div class="tooltip" style="display:inline">Phoenix FD Plain Force<div class="tooltiptext" id="PlainForce_info">CONTENT NOT FOUND</div></div> 
    used to imitate wind blowing in the positive X direction. 
  5. HTML
    A 
    <div class="tooltip" style="display:inline">Phoenix FD Particle Shader<div class="tooltiptext" id="ParticleShader_info">CONTENT NOT FOUND</div></div> 
    to render the <strong>Drag Particles</strong> of the Fire Source as red-ish points.
  6. A V-Ray Infinite Plane for the ground.

Note that there are no light sources present in the scene. The only source of illumination for the final image is provided by the fire.

 

 

Column
width60%

Image Removed

 

 

Scene Setup

 

Section
Column
width40%

Set the Time ConfigurationAnimation Length to 60 so that the Timeslider goes from 0 to 60.

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

Column
width60%

Image Removed

Phoenix FD Setup

 

Section
Column
width40%
HTML
Select the chair geometry and left-click on the <strong>Burning Fuel with Smoke</strong> preset from the 
<div class="tooltip" style="display:inline">Phoenix FD Toolbar<div class="tooltiptext" id="Toolbar_info">CONTENT NOT FOUND</div></div>
. This will generate an entire setup for you consisting of a <strong>Phoenix FD Fire/Smoke Simulator</strong>, a <strong>Phoenix FD Fire Source</strong>, and a <strong>Phoenix FD Particle Shader</strong> node used for rendering the Drag particles produced by the source.
Column
width60%

Image Removed

 

 

Section
Column
width40%

Phoenix FD provides a high-quality GPU Preview directly in the 3ds Max 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.

HTML
<br />
To do so, go to the 
<div class="tooltip" style="display:inline">Preview rollout <div class="tooltiptext" id="Preview_info">CONTENT NOT FOUND</div></div>
 → GPU preview section → 
<div class="tooltip" style="display:inline"> Enable in Viewport<div class="tooltiptext" id="Preview_enable_info">Tooltip text</div></div>
.
<br />
<br />
The GPU Preview section of the Preview rollout also contains 
<div class="tooltip" style="display:inline">Lighting <div class="tooltiptext" id="Preview_lighting_info">CONTENT NOT FOUND</div></div>
 controls which only affect the viewport preview and not the rendering. 
<br />
<br />
You can also disable the <strong>Lighting</strong> altogether which will cause only the fire to be visible in the Viewport.

 

 

Column
width60%
Image Removed

 


 

Section
Column
width40%

Next, open the Volumetric Render Settings window → Fire rollout and add the V-Ray Distance texture in the Texture slot.

Then, enable Modulate. Enabling this option multiplies the Based on channel by the V-Ray Distance texture placed in the Texture slot.

Column
width60%

Image Added

 


 

Section
Column
width40%

Here's how a rendered image looks with the V-Ray Distance texture.

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

Column
width60%

Image Added

 

Retiming the Phoenix Simulation


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 120 (assuming you are working with the provided scene file which has a total animation length of 60).

The total length of the animation of 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.

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:

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 a VertexPaint modifier to specify where the emission happens.
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 Simulation, 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.
  • 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 resimulating over the slowed-down cache files with the Time-Bend Resimulation option enabled.
  •  

    Column
    width60%
    videoautoplayloop

    Image Added

    0burning_fuel_preset_whole_chair_burning.mp4
    1800
    2450
    3true
    4false
    5true

    Varying the Emission with Vertex Color Texture

     



     

    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 Frame Blending method to Velocity.

    Section
    40%
    Column
    width

    medium
    UI Text Box
    size
    typeinfo

    At the moment, the entire chair geometry is used for fire/smoke emission. This produces a homogenous flame which looks unrealistic.

    To break up the emission, we use a VertexPaint modifier to specify where the emission happens. We can then extract the painted information using a Vertex Color texture and apply that as a mask to the Outgoing Velocity parameter of the Phoenix FD Fire Source.

    Select the chair geometry and apply a VertexPaint modifier. A VertexPaint toolbar should appear in the 3ds Max UI. If you accidentally close it, use the Edit... button under the VertexPaint modifier to bring it back.

    Click the left-most icon at the top of the toolbar to set the Vertex Color display to Unshaded - this makes it easier to see what you're doing.

    Then, set the Color to Black (0, 0, 0) and use the Paint Bucket icon to make the entire chair black.

    Activate the Brush tool, set the Color to White (255, 255, 255) and paint the areas that you want to be burning.

    When finished, click the 3-rd icon (left to right) at the top to disable the vertex color preview.

    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width40%

    Open the Material Editor and create a Vertex Color texture. The Vertex Color texture can read the color information that we just painted on the chair geometry.

    HTML
    <br />
    You can directly pipe its output into the  
    <div class="tooltip" style="display:inline">Outgoing Velocity Mask<div class="tooltiptext" id="FireSource_OutVelocity_Mask_info2">CONTENT NOT FOUND</div></div>
     of the <strong>Phoenix FD Source</strong>. 
    <br />

    However, in this tutorial, we add additional variation by compositing the Vertex Color texture over a Cellular texture using a VRayComp texture.

     

    Add a VRayComp texture and feed the output of the Vertex Color to the SourceA input.

    Set the Operator to Multiply (A*B).

     

    Then, add a Cellular texture and feed its output to the SourceB input of the VRayComp texture.

    Left-Mouse-Button click and drag from the VRayComp texture's output to the Outgoing Velocity Mask parameter of the Phoenix FD Fire Source.

    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width40%

    Set the Cellular type to Circular, with a Size of 2.0 and a Spread of 0.25. Those values are an artistic choice and in no way set in stone - feel free to change them if your setup requires it.

    Animate the Offset X parameter to go from a value of 0 to 5 over the range of frames 0 to 60. This will cause the sampling coordinates for the Cellular noise to shift over time, adding one more layer of randomness to the emission.

    Open the Curve Editor and set the tangents for the animation to Linear.

    If you can't find the Cellular texture coordinates in the list, make sure to disable the Show Only filters under the View → Filters options box. You should then be able to find it under SME → Map # → Properties → Coordinates.

    This is done so the animation of the Cellular noise doesn't speed up in the beginning and slow down at the end, which is the effect of the default Ease In - Ease Out tangents.

    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width40%

    Here's how the simulation looks with the VRay Comp texture used as a mask for the Outgoing Velocity:

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

    Column
    width60%

    Videoautoplayloop
    0chair_fuelPreset_VRayCompTex_to_discharge.mp4
    1800
    2450
    3true
    4false
    5true

     

     

    Section
    Column
    width40%
    HTML
    <br />
    Select the <strong>Phoenix FD Simulator</strong> and open the 
    <div class="tooltip" style="display:inline">Grid<div class="tooltiptext" id="GridGrid_info">CONTENT NOT FOUND</div></div> 
    rollout. 
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Scene Scale<div class="tooltiptext" id="GridGrid_SceneScale_info">CONTENT NOT FOUND</div></div> 
    to <strong>1.5</strong> - this will slightly slow down the simulation.
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Cell Size<div class="tooltiptext" id="GridGrid_CellSize_info">CONTENT NOT FOUND</div></div> 
    to <strong>0.65</strong> and change the 
    <div class="tooltip" style="display:inline">X / Y / Z<div class="tooltiptext" id="GridGrid_XYZ_info">CONTENT NOT FOUND</div></div> 
    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.
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Adaptive Grid<div class="tooltiptext" id="GridGrid_AdaptiveGrid_info">CONTENT NOT FOUND</div></div> 
    option to <strong>Smoke</strong>, and the 
    <div class="tooltip" style="display:inline">Threshold <div class="tooltiptext" id="GridGrid_Threshold_info">CONTENT NOT FOUND</div></div> 
    to <strong>0.02</strong>.
    <br />
    The <strong>Adaptive Grid</strong> option allows the container to grow in size once the content of the specified channel near the walls of the simulator reaches the <strong>Threshold</strong> value. In this case, the container will increase in size when there is smoke near the walls.
    <br />
    HTML
    <br />
    Enable the 
    <div class="tooltip" style="display:inline">Expand and Don't Shrink<div class="tooltiptext" id="GridGrid_ExpandAndDontShrink_info">CONTENT NOT FOUND</div></div> 
    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 <strong>Adaptive Grid option to constantly resize the bounds of the simulation</strong>, producing undesirable results (such as sharply cutting off the fire).
    <br />
    HTML
    <br />
    Enable 
    <div class="tooltip" style="display:inline">Maximum Expansion<div class="tooltiptext" id="GridGrid_MaximumExpansion_info">CONTENT NOT FOUND</div></div> 
    and set the <strong>X / Y / Z</strong> dimensions according to your needs. In this tutorial, a Phoenix FD 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.
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Extra Margin<div class="tooltiptext" id="GridGrid_ExtraMargin_info">CONTENT NOT FOUND</div></div>  
    to <strong>5</strong> - this option allows the Adaptation to keep a number of voxels close to the walls as a <strong>buffer zone</strong> 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.
    <br />

     

     

    Column
    width60%

    Image Removed

     

     

     

     

    Section
    Column
    width100%

    Image Removed

     

     

    Section
    Column
    width40%
    HTML
    <br />
    Select the <strong>Phoenix FD Fire Source</strong> created by the Burning Fuel preset and make sure that the Chair geometry is included in the
    <div class="tooltip" style="display:inline">Emitter Nodes<div class="tooltiptext" id="FireSource_EmitterNodes_info">CONTENT NOT FOUND</div></div>  
    list at the top.
    <br />
    HTML
    <br />
    By default, the 
    <div class="tooltip" style="display:inline">Emit Mode <div class="tooltiptext" id="FireSource_EmitMode_info">CONTENT NOT FOUND</div></div>  
    should be set to <strong>Surface Force</strong> - this will produce flames only on the surface of the emission geometry.
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Outgoing Velocity<div class="tooltiptext" id="FireSource_OutVelocity_info2">CONTENT NOT FOUND</div></div>  
    to <strong>400cm</strong>. The <strong>Outgoing Velocity</strong> parameter controls the <strong>strength</strong> of the emission. If you'd like the flames to be calm and short, reduce this value accordingly.
    <br />
    HTML
    <br />
    Disable 
    <div class="tooltip" style="display:inline">Fuel<div class="tooltiptext" id="FireSource_Fuel_info">CONTENT NOT FOUND</div></div>  
    , and enable 
    <div class="tooltip" style="display:inline">Smoke<div class="tooltiptext" id="FireSource_Smoke_info">CONTENT NOT FOUND</div></div>  
    and 
    <div class="tooltip" style="display:inline">Temperature <div class="tooltiptext" id="FireSource_Temperature_info">CONTENT NOT FOUND</div></div>  
    emission. The Burning Fuel preset we selected earlier sets up a simulation that uses the fuel channel to produce temperature and smoke - this behavior is controlled from the <strong>Fuel</strong> rollout of the <strong>Phoenix FD Simulator</strong>.
    <br />
    However, instead of relying on this, a much simpler and easier to control way to produce fire is to only emit <strong>Smoke</strong> and <strong>Temperature</strong>, and to tweak the Shading/Rendering options as necessary. Fuel and burning are better suited for explosive effects.
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Particles<div class="tooltiptext" id="FireSource_Particles_info">CONTENT NOT FOUND</div></div>  
    value to <strong>2.5</strong> - this parameter controls the number of particles (in thousands) born each second. We emit <strong>Drag</strong> particles to <strong>represent</strong> the <strong>embers</strong> produced by the process of burning.
    <br />
    Drag particles are simply Phoenix FD's version of <strong>Particle Advection</strong>. As the simulation progresses, the Drag particles are carried (dragged) along by the <strong>Velocity</strong> channel together with the smoke.
    <br />
     
    HTML
    <br />
    Make sure to enable
    <div class="tooltip" style="display:inline">Export Drag Particle IDs <div class="tooltiptext" id="FireSource_ParticlesExport_info">CONTENT NOT FOUND</div></div>  
     - Phoenix FD needs the IDs for the <strong>Resimulation</strong> process.
    <br />

     

     

     

     

     

    Column
    width60%

    Image Removed

     

     

     

     

     

     

     

    Section
    Column
    width40%
    HTML
    <br />
    Open the 
    <div class="tooltip" style="display:inline">Output<div class="tooltiptext" id="FireSmoke_Output_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout of the Phoenix FD Simulator and disable 
    <div class="tooltip" style="display:inline">Fuel<div class="tooltiptext" id="FireSmoke_Output_Fuel_info">CONTENT NOT FOUND</div></div>
     . As discussed earlier, we don't make use of the <strong>Fuel</strong> channel so there is no point exporting it.
    <br />
    <br />
    Enable 
    <div class="tooltip" style="display:inline">Velocity<div class="tooltiptext" id="FireSmoke_Output_Velocity_info">CONTENT NOT FOUND</div></div> 
    export - the <strong>Velocity</strong> channel is required when doing a <strong>Resimulation</strong>, and also when rendering the simulation with <strong>Motion Blur</strong>.
    <br />
    UI Text Box
    sizemedium
    typeinfo

    If you'd like to run a Resimulation that uses the Wavelet turbulence options in the Resimulation rollout for increasing the resolution and adding extra swirls, you also need to enable the Wavelet channel export in the Output rollout.

    UI Text Box
    sizemedium
    typetip

    The Backup parameter controls the interval at which Backup cache files are created and stored on disk. You can later continue a stopped simulation from such frames (see the Restore button). To make a Restore possible at every frame, set this parameter to 1. A value of 0 means no backup frames will be exported.

    You may set this to 0 to save on space as the simulation is relatively short and fast.

    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width40%
    HTML
    <br />
    Open the
    <div class="tooltip" style="display:inline">Fuel<div class="tooltiptext" id="FireSmoke_Fuel_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout and deselect 
    <div class="tooltip" style="display:inline">Enable Burning<div class="tooltiptext" id="FireSmoke_Fuel_EnableBurning_info">CONTENT NOT FOUND</div></div> 
    .
    <br /> <br />

    This option was enabled by the Burning Fuel with Smoke preset we used as a starting point. Since we disabled the emission of fuel, the burning process will not be utilized and keeping this enabled will only consume resources in vain.

    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width40%

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

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

    The fire is still too turbulent and noisy for our purpose so we take care of that next.

    Column
    width60%

     

    Videoautoplayloop
    0chair_fuelPreset_increaseDischarge_and_resolution.mp4
    1800
    2450
    3true
    4false
    5true

    Phoenix FD Simulator Properties

     

    Section
    Column
    width40%
    HTML
    <br />
    Select the <strong>Phoenix FD Simulator</strong> and open the
    <div class="tooltip" style="display:inline">Dynamics<div class="tooltiptext" id="FireSmoke_Dynamics_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout.
    <br />
    HTML
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Time Scale<div class="tooltiptext" id="FireSmoke_Dynamics_TimeScale_info">CONTENT NOT FOUND</div></div> 
     to <strong>0.6</strong>. The <strong>Time Scale</strong> option works as a multiplier for the <strong>velocity</strong> in the simulation. The lower this value is, the lower the effect of the forces and dynamics parameters such as buoyancy, vorticity, etc. will be.
    <br />
    HTML
    <br />
    Reduce the  
    <div class="tooltip" style="display:inline">Cooling<div class="tooltiptext" id="FireSmoke_Dynamics_Cooling_info">CONTENT NOT FOUND</div></div> 
     to <strong>0.1</strong>. This parameter will heavily influence the <strong>height of the flames</strong> in the simulation. Reduce it for taller flames, increase it for shorter ones.
    <br />
    HTML
    <br />
    Set the  
    <div class="tooltip" style="display:inline">Smoke Dissipation<div class="tooltiptext" id="FireSmoke_Dynamics_SmokeDissipation_info">CONTENT NOT FOUND</div></div> 
     to <strong>0.3</strong>. The effect of this change will only be visible in the smoke. You may omit this step in case you plan to only render the fire.
    <br />
    HTML
    <br />
    Set all the   
    <div class="tooltip" style="display:inline">Vorticity<div class="tooltiptext" id="FireSmoke_Dynamics_Vorticity_info">CONTENT NOT FOUND</div></div> 
     and
    <div class="tooltip" style="display:inline">Randomize<div class="tooltiptext" id="FireSmoke_Dynamics_Randomize_info">CONTENT NOT FOUND</div></div> 
    parameters to <strong>0 to disable them</strong> entirely. For this simulation, we rely on the detail produced by the emission textures and the <strong>Buffered Conservation</strong> method.
    <br />
    Column
    width60%

    Image Removed

     

     

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

     

     

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

     

     

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

     

     

    Section
    Column
    width40%
    HTML
    <br />
    Still under the <strong>Dynamics</strong> rollout, in the 
    <div class="tooltip" style="display:inline">Conservation<div class="tooltiptext" id="FireSmoke_Dynamics_Conservation_Overview_info">CONTENT NOT FOUND</div></div> 
     section, set the 
    <div class="tooltip" style="display:inline">Method <div class="tooltiptext" id="FireSmoke_Dynamics_Conservation_Method_info">CONTENT NOT FOUND</div></div> 
    to 
    <div class="tooltip" style="display:inline">Buffered<div class="tooltiptext" id="FireSmoke_Dynamics_Conservation_Method_Buffered_info">CONTENT NOT FOUND</div></div> 
    , with a
    <div class="tooltip" style="display:inline">Quality <div class="tooltiptext" id="FireSmoke_Dynamics_Conservation_Quality_info">CONTENT NOT FOUND</div></div> 
    of 40, and disable 
    <div class="tooltip" style="display:inline">Uniform Density<div class="tooltiptext" id="FireSmoke_Dynamics_Conservation_UniformDensity_info">CONTENT NOT FOUND</div></div> 
    .
    <br />

    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.

    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width100%

    Image Removed

     

     

    Section
    Column
    width100%

    Image Removed

     

     

     

    Section
    Column
    width100%

    Image Removed

     

     

    Section
    Column
    width100%

    Image Removed

     

    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 Added

     


     

    Section
    Column
    width40%

    Open the Resimulation rollout and enable Grid Resimulation and Particle Resimulation.

    UI Text Box
    typenote

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

    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 Amp. 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 simply want to recalculate the cached sequence, we leave the Amplify Resolution at 0.

    Enable Use Time Bend Controls and set the 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 Added



     

     

    Section
    Column
    width40%

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

    Column
    width60%

     

    Videoautoplayloop
    0chair_conserv_buffered.mp4
    1800
    2450
    3true
    4false
    5true

     

     

    Section
    Column
    width40%
    HTML
    To add additional realism to the simulation, we use a 
    <div class="tooltip" style="display:inline">Phoenix FD Plain Force<div class="tooltiptext" id="PlainForce_info2">CONTENT NOT FOUND</div></div> 
    to simulate the effect of wind.
    <br />

    Go to the Helpers tab → Phoenix FD and add a Phoenix FD 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.

    UI Text Box
    sizemedium
    typeinfo

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

    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.

    Note: if GPU preview is enabled, the Forces preview will not show up in the viewport.

    Column
    width60%

    Image Removed

     

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

    You could experiment with other forces as well. A Phoenix FD 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
    0chair_plain_force.mp4
    1800
    2450
    3true
    4false
    5true

    Phoenix FD Render Settings

     

    Section
    Column
    width40%
    HTML
    Open the <strong>Phoenix FD Simulator</strong>'s  
    <div class="tooltip" style="display:inline">Rendering <div class="tooltiptext" id="FireSmoke_Rendering_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout. The <strong>Rendering</strong> rollout contains all the shading and rendering parameters necessary for a Fire/Smoke simulation..
    <br />
    UI Text Box
    sizemedium
    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%

    Image Removed

     

     

    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 Removed 

     

     

    Section
    Column
    width40%
    HTML
    Click the
    <div class="tooltip" style="display:inline">Volumetric Options<div class="tooltiptext" id="FireSmoke_Rendering_VolumetricOptions_info">CONTENT NOT FOUND</div></div> 
    button to access the volumetric shading settings.
    <br />
    HTML
    <br />
    Open the
    <div class="tooltip" style="display:inline">Smoke Opacity<div class="tooltiptext" id="FireSmoke_SmokeOpacity_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout and set
    <div class="tooltip" style="display:inline">Based on<div class="tooltiptext" id="FireSmoke_SmokeOpacity_BasedOn_info">CONTENT NOT FOUND</div></div> 
    to <strong>Smoke</strong>. 
    <br /> <br />
    Set the second curve point in the Opacity Diagram to <strong>X: 1.0, Y: 0.3</strong>.
    <br />

    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%

    Image Removed

     

     

    Section
    Column
    width40%
    HTML
    Open the
    <div class="tooltip" style="display:inline">Smoke Color<div class="tooltiptext" id="FireSmoke_SmokeColor_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout and set the 
    <div class="tooltip" style="display:inline">Constant Color<div class="tooltiptext" id="FireSmoke_SmokeColor_ConstantColor_info">CONTENT NOT FOUND</div></div> 
    parameter to <strong>RGB (170, 170, 170)</strong> to make the smoke brighter.
    <br />
    <br />
    Change the 
    <div class="tooltip" style="display:inline">Scattering<div class="tooltiptext" id="FireSmoke_SmokeColor_Scattering_info">CONTENT NOT FOUND</div></div>
    parameter to 
    <div class="tooltip" style="display:inline">Approximate+Shadows<div class="tooltiptext" id="FireSmoke_SmokeColor_Scattering_Approximate_info">CONTENT NOT FOUND</div></div>
    . <strong>Scattering</strong> controls how the light rays are scattered inside the volume. The <strong>Ray-traced</strong> option tends to be much slower to render but physically-accurate while the <strong>Approximation</strong> options use internal Phoenix FD algorithms to speed up the rendering process. The difference between the Approximate and Approximate+Shadows is that the latter also affects the strength of shadows cast by the volume over the scene geometry.
    <br />
    Column
    width60%

    Image Removed

     

     

    Section
    Column
    width40%
    HTML
    Open the 
    <div class="tooltip" style="display:inline">Fire<div class="tooltiptext" id="FireSmoke_Fire_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout. This section controls the emissive (fire) color of the volumetric shader and the light emitted by the simulator. Unlike the smoke color which needs an external light to become visible, the fire will be visible immediately. 
    <br />
    <br />
    For this tutorial, the 
    <div class="tooltip" style="display:inline">Fire Opacity Mode<div class="tooltiptext" id="FireSmoke_Fire_FireOpacityMode_info">CONTENT NOT FOUND</div></div> 
    is set to <strong>Fully Visible</strong>, with a 
    <div class="tooltip" style="display:inline">Fire Multiplier<div class="tooltiptext" id="FireSmoke_Fire_FireMultiplier_info">CONTENT NOT FOUND</div></div> 
     of <strong>15</strong>. Reduce the 
    <div class="tooltip" style="display:inline">Light Power on Self<div class="tooltiptext" id="FireSmoke_Fire_LightPowerOnSelf_info">CONTENT NOT FOUND</div></div> 
     to <strong>0.3</strong>.

    The process of setting up the Intensity and Color Ramp will usually have the greatest impact on the shading of your fire simulation.

    As you can see from the screenshot to the right, there are a dozen or so manually placed colors on the ramp, and the curve has been edited too. Since it's not feasible to describe this in a tutorial, we provide you with a Render Preset file that you can load in your scene to get the exact same settings.

    To load the provided preset, go to the Rendering → Render Presets button and select the chair_flames_preset.tpr preset file that came with the project files for this tutorial.

    Column
    width60%

    Image Removed

     

     

    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 Removed

     

     

    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.

    Column
    width60%

    Image Removed

    Retiming the Phoenix FD Simulation

     

    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 120 (assuming you are working with the provided scene file which has a total animation length of 60).

    The total length of the animation of 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%

    Image Removed

     

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

     

    HTML
    Open the
    <div class="tooltip" style="display:inline">Input <div class="tooltiptext" id="FireSmoke_Input_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout and set the 
    <div class="tooltip" style="display:inline">Play Speed<div class="tooltiptext" id="FireSmoke_Input_PlaySpeed_info">CONTENT NOT FOUND</div></div> 
    to <strong>0.5</strong>.
    <br />
    <br />
    Set the 
    <div class="tooltip" style="display:inline">Frame Blending<div class="tooltiptext" id="FireSmoke_Input_FrameBlend_info">CONTENT NOT FOUND</div></div> 
    method to 
    <div class="tooltip" style="display:inline">Velocity<div class="tooltiptext" id="FireSmoke_Input_FrameBlend_Velocity_info">CONTENT NOT FOUND</div></div>
    .
    <br />
    UI Text Box
    sizemedium
    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 FD 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 Removed

     

    Video
    0BurningFuel_Comparison_2.mp4
    1100%
    2100%

     

     

    Section
    Column
    width40%
    HTML
    Open the
    <div class="tooltip" style="display:inline">Resimulation<div class="tooltiptext" id="FireSmoke_Resimulation_Overview_info">CONTENT NOT FOUND</div></div> 
    rollout and enable 
    <div class="tooltip" style="display:inline">Grid Resimulation<div class="tooltiptext" id="FireSmoke_Resimulation_EnableGrid_info">CONTENT NOT FOUND</div></div>
    and 
    <div class="tooltip" style="display:inline">Particle Resimulation<div class="tooltiptext" id="FireSmoke_Resimulation_EnableParticle_info">CONTENT NOT FOUND</div></div>
    .
    <br /> <br />
    Note that when you enable <strong>Resimulation</strong>, Phoenix FD will try to read the cache files for preview and rendering from the <strong>Resimulation Output Path</strong> 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 resimulation.
    <br />

    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.

    HTML
    <br />
    Set the
    <div class="tooltip" style="display:inline">Amp.Resolution<div class="tooltiptext" id="FireSmoke_Resimulation_AmpResolution_info">CONTENT NOT FOUND</div></div> 
    to 0. This parameter is used to increase the resolution of the grid for the <strong>Resimulation</strong> process only (just like the Cell Size in the Grid rollout controls the simulator's resolution). <strong>Because we simply want to recalculate the cached sequence, we leave the Amplify Resolution at 0</strong>.
    <br />
    HTML
    <br />
    Enable  
    <div class="tooltip" style="display:inline">Use Time Bend Controls<div class="tooltiptext" id="FireSmoke_Resimulation_UseTimeBend_info">CONTENT NOT FOUND</div></div> 
    and set the 
    <div class="tooltip" style="display:inline">Method<div class="tooltiptext" id="FireSmoke_Resimulation_TimeBendMethod_info">CONTENT NOT FOUND</div></div> 
    to 
    <div class="tooltip" style="display:inline">Slow Down<div class="tooltiptext" id="FireSmoke_Resimulation_TimeBendMethod_SlowDown_info">CONTENT NOT FOUND</div></div> 
    . This option works great when trying to produce a slower version of your base simulation, as is the case with our fire.
    <br />
    HTML
    <br />
    Set 
    <div class="tooltip" style="display:inline">Wavelet Strength<div class="tooltiptext" id="FireSmoke_Resimulation_WaveletStrength_info">CONTENT NOT FOUND</div></div> 
    to <strong>0.01</strong>. <strong>Wavelet Turbulence</strong> is used to generate wispy detail in a simulation but we're not looking to add additional details so the <strong>Strength</strong> is reduced to its lowest possible value.
    <br />
    UI Text Box
    sizemedium
    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 Removed

     

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

     

     

    Section
    Column
    width40%

    Hit Start to begin the resimulationResimulation.

    Column
    width60%

    Image Modified



     

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


     

    Section
    html
    Column
    width40%

    You

    can

    use

    the <div class="tooltip" style="display:inline">Amp.Resolution<div class="tooltiptext" id="FireSmoke_Resimulation_AmpResolution_info2">CONTENT NOT FOUND</div></div> option to add extra detail to the simulation during the <strong>Re-Sim</strong> process. <br /> <br /> The <strong>Amplify Resolution</strong> setting controls the number of voxels that will be used for the grid during resimulation Here's the simulation above, resimulated with <strong>Amp Resolution</strong> of <strong>1</strong>. <br />

    the Amp. 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, resimulated with Amp. Resolution of 1.

    resimulation with Amp Resolution 1
    Column
    width60%
    videoautoplayloop
    Align
    0chair_fire_after_resim_ampRes_1_noWavelet.mp4
    1800
    2450
    3true
    4false
    5true

     

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

     

    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 Phoenix_Burning_Chair_START_3dsMax2015.max already has the cameras set up for you.

    However, for reference, here re the physCam_far camera properties:

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

    F-Number: 2.4;

    Shutter Speed: 200;

    ISO: 100;

    Focal Length: 90

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

    You can always go back to the VertexPaint modifier and tweak the color.

    Here is a simulation with a different emission pattern, and an Amp Resolution value of 1.0 for the Resimulation:

    The difference between this simulation and the video above is the 'density' of the painted vertex color. The vertex paint in the simulation above is sparser while for this simulation, we used a large brush radius and painted entire sections of the chair, relying on the Cellular texture to add that extra detail in the emission.

    Column
    width60%

    Image Added

     

    Videoautoplayloop
    0burning_chair_ampRes_1.mp4
    1800
    2450
    3true
    4false
    5true

    Render Settings


    Section
    Column
    width40%

    In the Render Setup tab:

    The Image sampler Type is set to Bucket.

    The Max subdivs are set to 6.

    The Bucket width is set to 16.

    Column
    width60%

    Image Added

     


     

    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.

    Column
    width60%

    Image Added

     

    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.max already has the cameras set up for you. However, for reference, here are their properties:

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

    F-Number: 2.4

    Shutter Speed: 200

    ISO: 100

    Focal Length: 90

    Vignetting: Disabled.

    Column
    width60%

    Image Removed

     

    Viewtracker
    hidetrue
    renderusernamesfalse

    For the final render, we use a wood material called Laminate_D01_120cm for the chair geometry. The material can be found in the V-Ray Material Library.

    You can also experiment with other materials.

    Column
    width60%

    Image Added

     


     

    Section
    Column
    width40%

    And here is the final result.

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