Versions Compared

Key

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

...

Div
stylemargin-top: 10px
idFireSmoke_Dynamics_Overview

This rollout controls the FireSmoke dynamics parameters. It can be accessed in the Modify panel when a FireSmokeSim object is selected.

UI Text Box
sizemedium
typetip

 UI Path: ||Select Fire Smoke Simulator | FireSmokeSim|| > Modify panel > Dynamics rollout

 

Parameters

...

General

...

...

 

Anchor
InertialForces
InertialForces

...

Div
stylemargin-top: 10px
idFireSmoke_Dynamics_Cooling

Cooling | cooling – This parameter controls the cooling of the fluid due to radiation. It gradually decreases the temperature until it reaches 300.

medium
UI Text Box
size
typeinfo

Phoenix FD temperatures are in Kelvin, so 300 is room temperature - the temperature where the smoke neither ascends nor descends. A Cooling value of 1.0 corresponds approximately to the speed real smoke with a half thickness of 4 meters cools down. The real cooling is a very complicated process similar to the Global Illumination rendering, so here a simplified formula is used. You can find out more about Phoenix Grid Channel Ranges here.

...


Anchor
Vorticity
Vorticity

Vorticity

...

...

 

Div
stylemargin-top: 10px
idFireSmoke_Dynamics_VorticityClassic

Classic Vorticity | vorticity – Adds small-scale detail that is dissipated naturally by the grid-based simulation. Prevents the simulation from becoming smooth and laminar. Unlike Turbulence, which does not care about the fluid's motion at all, the Classic Vorticity algorithms works depending on the velocity of the simulation and changes the velocity field in order to reinforce vortices and add more detail to the simulation.For more information, see the Vorticity example below.

...

Section

Example: Vorticity

 


medium
UI Text Box
size
typeinfo

The following example shows the difference between the Classic and Massive types of Vorticity.

Section
Column
width5%

 

Column
width30%


Classic Vorticity = 0 

Column
width30%


Classic Vorticity = 0.3 

Column
width30%


Massive Smoke Vorticity = 0.3
Large Scale = 0.3 

Column
width5%

 


Randomize

...

Div
stylemargin-top: 10px
idFireSmoke_Dynamics_Randomize

These options add random fluctuations in the fluid's velocity for each grid voxel. It works in combination with the Vorticity parameters.

...

Div
stylemargin-top: 10px
idFireSmoke_Dynamics_Conservation_Overview

The conservation process gives the fluid its characteristic swirling motion. It transforms straight-line movement of the fluid into swirling vortices. The higher the strength of the conservation, the farther the motion forces will be propagated throughout the container, so a movement in one point will cause the fluid to start moving at a distance too. The conservation directs smoke and fire into realistic shapes and helps liquids to support their own weight when at rest, and to fill up a volume they are poured into.

medium
UI Text Box
size
typeinfo

Internally, the conservation updates the directions and magnitudes of the velocities of each cell in the grid, preparing them for the Advection step when the content will be moved between cells. Basically it tries to equalize the velocities coming in and going out from each cell, and does this in many passes, getting closer to the perfect equilibrium. The number of passes is the conservation strength (quality). In nature, conservation has an infinite strength and is always perfect. In Phoenix FD, the better the quality of the conservation is, the farther the movement from one point will be propagated, making the simulation more realistic, but at the expense of longer simulation time for each frame. There are a number of conservation methods in Phoenix FD that you can choose between, depending on the type of your simulation. Each of them comes with pros and cons for the given situation.

...

Section

Example: Conservation Method Types

 


medium
UI Text Box
size
typeinfo

The following example shows the difference between the Symmetric, Smooth and Buffered Conservation Method types.

Section
Column
width5%

 

Column
width30%


Symmetric conservation 

Column
width30%


Smooth conservation 

Column
width30%


Buffered conservation 

Column
width5%

 

 

Anchor
QualityExample
QualityExample

Section

Example: Conservation Quality


medium
UI Text Box
size
typeinfo

The animation below demonstrates how to cope with losing the volume of smoke. A smoke source is placed in an almost closed room, where the only exit is near the floor. In the real world the smoke will fill the room and then reach the exit, just because once created, the smoke is accumulated and does not disappear. However, when the conservation parameter is low, the smoke does not keep its amount and disappears, never reaching the hole.

Note that the smoke reaches the hole with conservation quality at about 200, and this value is not accidental. The vertical size of the grid is 100, and if it was smaller, the conservation value that allows the smoke to reach the hole would have been smaller too. You can think of this parameter as a distance scope in which the conservation spreads the velocity influence.

Section
Column
width5%

 

Column
width30%


Quality = 8

 

Column
width30%


Quality = 50 

Column
width30%


Quality = 200 

 
Column
width5%

 

 

Anchor
Advection
Advection

...

The advection process moves the fluid along its velocity inside the grid. A problem of all grid-based simulators is that moving the content of one cell to a new place in the grid will blur the result when the destination lies between cells (and it usually does), thus losing the fine details with each new frame. Phoenix FD has a number of advection methods that battle this problem in different ways, each one with its own pros and cons depending on the situation.

UI Text Box
sizemedium
typetip

Phoenix FD may perform advection more than once per frame, or once in a number of frames, depending on the Steps per frame (SPF) parameter. To get the best detail for smoke and fire, it is best to keep the SPF low. On the other hand a higher SPF works better to keep liquids steady and smooth, and is better for quickly moving fluids in general.

...


 

Anchor
AdvectionMethod
AdvectionMethod

...

Steps per frame (SPF) | spf – Determines how many calculations of the simulated grid are performed between two consecutive frames of the timeline. For more information, see the Steps per Frame example below.

medium
UI Text Box
size
typenote

One of the most important parameters of the simulator, with significant impact on quality and performance. To understand how to use it, keep in mind that the simulation is a sequential process and happens step by step. It produces good results if each simulation step introduces small changes, but it's also a trade-off between performance and detail, as described below.

For example, if you have an object that is hitting the liquid surface with high speed, the result will be not good if at the first step the object is far away from the water, and at the second step, the object is already deep under the water. You have to introduce intermediate steps until the changes of each step get small enough. This parameter creates these steps within each frame. A value of 1 means that there are no intermediate steps and each step is exported into the cache file. A value of 2 means that there is one intermediate step, i.e. each second step is exported to the cache file while the intermediate steps are just calculated, but not exported.

Signs that this parameter needs to be increased are:

  • Liquid simulations have too many single liquid particles.
  • Liquid simulations are torn and chaotic.
  • Liquid simulations of streams have steps or other periodical artifacts.
  • Fire/Smoke simulations have artifacts that produce a grainy appearance.

More often than not, those issues will be caused by the simulation moving too quickly (e.g. the emission from the source is very strong or the objects in the scene are moving very fast). In such cases you should use a higher SPF.

Keep in mind that higher Steps Per Frame decreases the performance in a linear way, i.e. if you increase the SPF twice, your simulation will go twice as slow. However, the quality does not have a linear relation to the SPF. Each simulation step kills fine details, and thus for maximum detail it's best to use the lowest possible SPF that runs without any of the issues mentioned above. For additional information, please refer to Phoenix Explained.

...



Anchor
AdvectionMethod
AdvectionMethod

Section

Example: Advection Method Types

 


medium
UI Text Box
size
typeinfo

The following example shows the difference between the Classic and Multi-Pass advection types.

Section
Column
width10%

 

Column
width40%


Classic Advection 

Column
width40%


Multi-pass Advection 

Column
width10%

 

 

Anchor
SPFExample
SPFExample

Section

Example: Steps Per Frame (SPF)


medium
UI Text Box
size
typeinfo

The first series in this example shows the differences in a Fire/Smoke simulation when the Steps Per Frame is set to 12, and 8.

Section
Column
width5%

 

Column
width30%


SPF = 1 

Column
width30%


SPF = 2 

Column
width30%


SPF = 8 

Column
width5%

 

 

Active Bodies


medium
UI Text Box
size
typewarning

Interaction between Active Bodies and the Phoenix FD Fire/Smoke Simulator is not supported yet.

 

 

Active Bodies | use_activeBodySolverNode – Enables the simulation of Active Bodies. 

Active Body Solver | activeBodySolverNode – Specifies the Active Body Solver node holding the objects to be affected by the Phoenix FD SimulationPhoenix Simulation

Anchor
TextureUVW
TextureUVW

Texture UVW


medium
UI Text Box
size
typeinfo

The main purpose of the Texture UVW feature is to provide dynamic UVW coordinates for texture mapping that follow the simulation. If such simulated texture coordinates are not present for mapping, textures assigned to your simulation will appear static, with the simulated content moving through the image. This undesired behavior is often referred to as 'texture swimming'.

UVW coordinates are generated by simulating an additional Texture UVW Grid Channel which has to be enabled under the Output roll-out for the settings below to have any effect.

The custom UVW texture coordinates can be used for advanced render-time effects, such as recoloring of mixing fluids, modifying the opacity or fire intensity with a naturally moving texture, or natural movement of displacement over fire/smoke and liquid surfaces. Some examples uses are:

  • Increasing the detail of Fire/Smoke simulations at render time by adding displacement which moves along with the fluid.
  • Increasing the detail of Fire/Smoke simulations at render time by modulating the opacity of the smoke, the smoke color, or the fire color and intensity with noise maps which move along with the fluid.
  • Re-coloring of Fire/Smoke or Liquid simulations at render time, after the simulation is complete.
  • Transporting images or texture color details with Fire/Smoke or Liquid simulations.

The Texture UVW channel values represent the UVW coordinates of each Cell in the Simulator, with a range of [ 0 - 1 ]. The channel is initialized when a simulation is started in one of two ways:

  1. By inheriting the UVs from the source geometry, when Inherit TexUVW from Geom is enabled on the Phoenix FD Source. The UVW channel will be based on the UVs of the emission geometry. This option is useful when simulating melting objects – textures assigned to the Volumetric Shader (for Fire/Smoke simulations) or the material (for Liquid simulations) will be carried by the simulation.
  2. When inheriting of UVs is disabled on the Source - depending on the position of the emitting object in the Simulator's bounding box. If Grid roll-out → Adaptive Grid is enabled, the Texture UVW coordinates in expanded voxels beyond the initial grid will be greater than one if the grid is expanding in a positive direction (+X, +Y, +Z), and less than zero otherwise. This means that textures assigned to simulations using the Adaptive Grid feature will be automatically tiled/repeated as many times as the final size of the Simulator is larger than its initial size.


 

Interpolation | texuvw_interpol_influence – Blends between the UVW coordinates of the liquid particle at time of birth and its UVW coordinates at the current position in the Simulator. When set to 0, no interpolation will be performed - as a consequence, textures assigned to the fluid mesh will be stretched as the simulation progresses. This is best used for simulations of melting objects. When set to 1, the UVW coordinates of the fluid mesh will be updated with a frequency based on the Interpol.Step parameter - this will essentially re-project the UVWs to avoid stretching but cause the textures assigned to the fluid to 'pop' as the re-projection is applied. If you intend to apply e.g. a displacement map to a flowing river, set this parameter to a value between 0.1 and 0.3 - this will suppress both the effects of stretching and popping. See the Interpolation example below.

Interpol. Step | texuvw_interpol_step – Specifies the update frequency for the UVW coordinates. When set to 1, the UVWs are updated on every frame, taking into account the Interpolation parameter. See the Interpolation Step example below.

Antiteartexuvw_antitear_influence – Use this option when the assigned texture appears twisted, torn apart or otherwise distorted. This may happen when the simulation is moving very fast, therefore increase both the Antitear and A-tear Iterations to let Phoenix FD attempt Phoenix attempt to resolve the distortion.

A-tear Iterationstexuvw_antitear_iterations – The number of Antitear iterations performed for every Step of the simulation. Increasing this parameter will help resolve UVW distortion issues by allowing Phoenix FD to run the Antitear operation multiple times. Note that this may slightly increase the time it takes for the simulation to complete.

 

Anchor
interpolation
interpolation

Section

Example: Interpolation

 


UI Text Box
sizemedium
typeinfo

The following video provides examples to show the differences of Interpolation values of 00.1, and 1, and an Interpolation Step of 1.

Align
aligncenter

Video
0liquidSimulator_dynamcis_texUVW_interpolate.mp4
3true

 

 

Anchor
interpolationStep
interpolationStep

Section

Example: Interpolation Step

 


size
UI Text Box
mediumtypeinfo

The following video provides examples to show the differences of Interpolation Step values of 13, and 6.

Align
aligncenter

Video
0liquidSimulator_dynamcis_texUVW_interpolateStep.mp4
3true