Versions Compared

Key

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

This page provides information on the Resimulation rollout for a FireSmokeSim object.

Overview

...

Resimulation uses an already simulated cache sequence with exported velocity (base simulation) to drive a new simulation with any of these added effectsis a process that uses existing cache files (with exported Grid Velocity) as a base for a new simulation pass, to do any of the following:

Fancy Bullets
typecircle
  • Increase resolution and enhance details, while keeping preserving the shape and behavior . (Itof the base simulation. For example, it's possible to add wavelet Wavelet turbulence to increase detail, or simply amplify the resolution).
  • Slow down or speed up the animation, as well as apply animated animate the time scale using Phoenix's Time Bend controls. See Slowing Down a Simulation, Animating the Time-Scale, etc.
  • Keep the grid channels such as Smoke, Temperature, etc., unchanged and only change while modifying the dynamics or number of Drag particles, or vice versa.
medium
UI Text Box
size
typetip

You You can resimulate over the resimulated caches and so on - it's not necessarily just 2 passes at most. already resimulated cache files. By default Phoenix reads from a cache sequence and creates another resimulated cache sequence. But you can also use the same path as Resimulation Input and Ouput and overwrite the simulated cache sequence each time you run a new resimulation. For example, this way you can keep increasing the resolution every time you run a new resimulation, and repeat this many times.

size
UI Text Box
mediumtypenote

Due to the difference between the compression algorithms used by Phoenix FD's Aura AUR format and the OpenVDB format, the resimulation process may produce a different result when using exported VDB caches as opposed to Aura caches if the Storage Quality option option in the Output roll-out is set to a value lower than rollout is not the maximum 20 (i.e. is not Lossless).

Section
Div
stylemargin-top: 10px
idFireSmoke_Resimulation_Overview

Rendering and simulation cache paths can be set manually. For information on how to do this, see

...

the Tips and Tricks page

...

regarding simulation paths

...

and resimulation paths.

When performing a resimulation, it is recommended that you leave

...

the Dynamics

...

settings unchanged between running a base simulation and resimulation, unless more advanced behaviors are specifically needed.

Additionally, the scene must be intact between running the base simulation and the resimulation. Please do not remove any Sources and their emitters, obstacles or forces that interact with the simulation.

Section

 

The resimulation workflow for is as follows: 
UI Expand
title
Fire/Smoke
Resimulation Workflow
UI Steps
UI Step
Section
Column
width40%55%

Enable Velocity in the Output rollout. If you are going to add wavelet turbulence as well, also enable Wavelet.

Column
width60%45%

Image RemovedImage Added

UI Step
Section
Column
width40%55%

Start the original (base) simulation and let it run through.

Column
width60%45%

Image RemovedImage Added

UI Step
Section
Column
width40%55%

Enable Particle Resimulation or Grid Resimulation or Particle Resimulation. Adjust the resimulation options in this rollout if needed.

Column
width60%45%

Image RemovedImage Added

UI Step
Section
Column
width40%55%

Start the simulation again - this time the Resimulation will take place. You can switch between preview and render of the base and resimulated caches by enabling/disabling the Resimulate checkbox.

Column
width60%

Image Removed

 

 
45%

Image Added

UI Text Box
sizemedium
typetip

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


Parameters

...

Section
Column
width50%

Expand – Opens a floating dialog that contains the selected rollout and automatically folds the command panel rollout.

Re-Center – Resets the position of the floating rollout.

? – Opens up the help documents for the Fire/Smoke Resimulation.

Start Frame

  • From Simulation | 

...

  • rs_start_from_sim – When enabled, the Resimulation will run from the first frame of the base simulation to the simulation End Frame or the Custom Stop Frame, depending on the options.
  • Custom | resim_startframe - Explicitly sets the Start Frame of the Resimulation. This can also be a negative number.

Stop Frame

  • From Simulation | rs_stop_from_sim – When enabled, the Resimulation will run from the base simulation Start Frame or the Custom Start Frame to the last frame of the base simulation.
  • Custom | resim_stopframe - Explicitly sets the End Frame of the Resimulation. This can also be a negative number.
Column
width5%


Column
width45%

Image Added

...


Anchor
EnableParticleResimulation
EnableParticleResimulation
Particle Resimulation

...

Section
Column

...

width

...

50%
Div
stylemargin-top: 10px
idFireSmoke_Resimulation_EnableParticle

Enable | resim_resimulate_particles – Enable/disable the

particle resimulation

Particle Resimulation. Use this option to modify the look of Drag particles. The

Particle

resimulation will produce the exact same result as the base simulation only with Steps per Frame = 1 in the Dynamics rollout. With a higher number of steps, the intermediate steps cannot be reconstructed

and a

, so full simulation is needed

to match them exactly, while the resimulation is only an approximate.

 

.

Column
width5%


Column
width45%

Image Added

...


Anchor
EnableGridResimulation
EnableGridResimulation

Div
idFireSmoke_GridResimulation

Grid Resimulation


Section
 
Column
Image Removed
width
 
50%
Div
stylemargin-top: 10px
idFireSmoke_Resimulation_EnableGrid

Enable | resim_resimulate_grid – Enables/disables the

grid resimulation

Grid Resimulation. Use this option when the grid detail has to be improved by increasing the resolution, by eventually adding wavelet turbulence, or if you need to re-time your simulation using Time Bend effects. The resimulation will produce the exact same result as the base simulation only with Steps per Frame = 1 in the Dynamics rollout. With a higher number of steps, the intermediate steps cannot be reconstructed, so full simulation is needed.

Div
stylemargin-top: 10px
idFireSmoke_Resimulation_AmpResolution

Amp. Resolution | resim_ampres – Magnifies the grid resolution. A value of 0.0 means no change, 1.0 means doubling the voxel amount in all axes (2*2*2=8 times the resolution), 2.0 means tripling (3*3*3=27 times the resolution), etc. Non-integer values can also be entered, however, they are slightly slower to calculate. The resolution can also be decreased by using a negative value.

Div
stylemargin-top: 10px
idFireSmoke_Resimulation_AmpMethod

Amp. Method | resim_ampmeth – When the grid resolution is increased, this parameter specifies which method to use to

sample

read the velocity from the base cache files.

Interpolate – Use interpolation. The velocity channel is stretched from the lower resolution to the

increased

amplified one.
Wavelet Fast – Use wavelet turbulence to

synthesize

create fine detail. Needs a Grid Wavelet channel exported

from the

to be base simulation cache files. This is a slightly faster approximation method.
Wavelet Nice – Use wavelet turbulence to

synthesize

create fine detail. Needs a Grid Wavelet channel exported

from the

to be base simulation cache files.

Div
stylemargin-top: 10px
idFireSmoke_Resimulation_WaveletStrength

Wavelet Strength | resim_wvstr – Specifies the strength of the wavelet turbulence.

Div
stylemargin-top: 10px
idFireSmoke_Resimulation_WaveletCutoff

Wavelet Cutoff | resim_wvcut – Turbulence with smaller amplitude will be cut off to reduce calculation time.

Div
stylemargin-top: 10px
idFireSmoke_Resimulation_NoExportChannels

No-Export Channels | resim_tmpchan – Specifies the channels that are used just for resimulation, which will not be exported to the resimulation output cache. For example, for wavelet turbulence, removing the UVW/Wavelet and Velocity channels from the final simulation will reduce the cache size.

 

Column
width5%


Column
width45%

Image Added

...



Section

Example: Resimulation with Wavelet Turbulence

 

 


size
UI Text Box
mediumtypetip

The example below shows the difference between a base Fire/Smoke simulation and the Resimulation result when using Wavelet Turbulence.

Section
 
Column
width10%


Column
width40%


Base Simulation

 

Column
width40%


Resimulated with Amplify Resolution = 1
and Wavelet Nice Method

 

Column
width10%

 


Anchor
TimeBendResim
TimeBendResim

...

Phoenix has many tools for changing the animation timing of a cache sequence after it is simulated. Resimulation with enabled Time Bend Controls can produce smoother playback in cases where the Input Time Bend controls are insufficient. For more information on Resimulating with Time Bend, see the Tips and Tricks topic on How to slow down a simulation, animate the time scale, etc.

Section

...

Column

...

width

...

50%
Div
stylemargin-top: 10px
idFireSmoke_Resimulation_UseTimeBend

Use Time Bend Controls | resim_grid_timebend – Change the time scale of the base simulation according to the Time Bend Controls in the Input rollout. You need to re-scale the animation of all other interacting objects and sources in the scene as well. For constant play speed, use 3ds Max's Rescale Time feature.

Div
stylemargin-top: 10px
idFireSmoke_Resimulation_TimeBendMethod

Time Bend Method | resim_grid_timebend_method – A method to use when scaling the time of the resimulation. Note that both methods work best when Steps per Frame on the Dynamics rollout is set to 1. Note that speeds below 0.2 may produce unsatisfactory results when using either method.

Div
stylemargin-top: 5px
idFireSmoke_Resimulation_TimeBendMethod_GeneralPurpose

General-Purpose – Works for all play speeds including backwards playback. It resimulates more quickly, but might produce flickering or jittering in the movement of the fluid. Sources, obstacles, or forces do not need to be present in the scene for this method. However, this method may not produce satisfactory results with animated sources.

Div
stylemargin-top: 0px
idFireSmoke_Resimulation_TimeBendMethod_SlowDown

Slow Down – Works only for play speeds between 0 and 1. It will produce smooth playback without flicker or jitter but will add more dissipation in the long run, so it's better to combine it with Multi-Pass Advection. This method requires all used sources, obstacles and forces to be present in the scene. Any animation in the scene will need to be adjusted accordingly and slowed down to the play speed of the resimulation.

 

Column
width5%


Column
width45%

Image Added

...



Section

Example: Time Bend Resimulation

 

 


UI Text Box
sizemedium
typetip

The example below shows the difference between the Input roll-out → Frm.rollout → Grid Blend Interpolation used to slow down without resimulating, the Resimulation → Slow Down Time Bend Method and the Resimulation → General-Purpose Time Bend Method.


Section
 
Column
width5%


Column
width30%

Input Play Speed = 0.2, Interpolation Blend

 

Column
width30%


Slow Down method + Wavelet 

Column
width30%


General-Purpose method + Wavelet 

Column
width5%

 

...




Resimulation Cache Files

...

UI Text Box
sizemedium
typetip

During resimulation, Phoenix reads cache files in the Input Simulation from the Base Cache Files Path, performs resimulation operations, and then saves a new cache sequence in the Output Simulation pathand Render Path.

For more information on how to set up resimulation paths, see the the Tips and Tricks page.

...

Section
Column
width50%

Wait if caches are missing resim_cachewaiting

...

 – When enabled, waits if the base cache file is not yet available. This can be used if another instance of 3ds Max is simulating the base cache at the same time (on the same or other computer).

Base Cache Files Path | resim_inpath

...

 – Specifies the base simulation caches which will be used as base for resimulation.

...

 $(same_as_output)

...

 by default.

Output and Render Path |

...

 resim_outpath

...

 – Specifies the path for writing the output cache files from Fire/Smoke resimulation.

...

 See Output Path for more details on the $(...) macros you can use. $(scene_path)

...

 by default (will append "_resim" to the end of the file name).

Click the "..." button to open a menu with the following options:

Browse - Opens a dialog where you can select where the resimulation caches will be written to. The filename you type in must contain # signs so each resimulation frame will be written to a differently numbered file. Also, you can choose between two file formats - AUR and VDB cache files.

Delete Cache Files - Clears the resimulation files.

Reset to Default - Resets the resimulation path to default.

Help - Opens this help page.

Column
width5%


Column
width45%

Image Added

UI Text Box
sizemedium
typewarning

If You can use the same Output and Render Path coincides with the Input Simulation as the Base Cache Files Path, and this way Phoenix FD will not prevent you from overwriting your existing cache filescreate a separate cache sequence for resimulation, but will overwrite the base simulation caches instead. It's valid to do so if you need a more complicated setup or when not enough disk space is available. This way you can increase the resolution more and more each time you start a resimulation.

medium
UI Text Box
size
typeinfo

 The following error message may appear when you start a re-simulationResimulation:

"Cannot start the Re-Simulation! Please make sure the simulation was run with the 'Velocity' channel checked under the 'Output' roll-outrollout, and that the cache files in the Simulation Resimulation Input path exist."

The reason may be that either the files in the Input Simulation Path do not exist at all, or they do not have Grid Velocity Channel exported when you have simulated them beforehand. Of course, you may use more complicated setups where you resimulate over an already resimulated cache file, or you may Load an existing base cache file as the initial state of the re-simulationresimulation. These are all possible; you just need to have velocity in the base cache and an existing path to it.

Viewtracker
hidetrue
renderusernamesfalse

...