This page provides information on the Resimulation rollout.
Overview
Resimulation is a process that uses existing cache files (with exported Grid Velocity) as a base for a new simulation pass. It works differently for Fire/Smoke and Liquid simulations.
You can resimulate over the 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.
Due to the difference between the compression algorithms used by Phoenix's 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 in the Output is not the maximum 20 (i.e. is not Lossless).
UI Path: ||Select PhoenixFDSim|| > Attribute Editor > Resimulation rollout
Parameters
Help – Opens up the help documents for the Resimulation.
Use Simulation Start Frame | 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 Start Frame | rsStartFrame – Explicitly sets the Start frame of the Resimulation. This can also be a negative number.
Use Simulation Stop Frame | 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 Stop Frame | rsStopFrame – Explicitly sets the End frame of the Resimulation. This can also be a negative number.
Particle Resimulation
Particle Resimulation | resim_resimulate_particles – Enables/disables the Particle Resimulation. Use this option to modify the look of Drag particles. The resimulation produces 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.
Grid Resimulation
Grid Resimulation | resim_resimulate_grid – Enables/disables the 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.
Amplify Resolution | rsResAmplify – 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.
Amplify Method | rsResAmplifyMethod – 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 – 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 fine to create fine detail. Needs a Wavelet channel exported from the a Grid Wavelet channel exported to be base simulation cache files.
Wavelet Strength | waveletStrength – Specifies the strength of the wavelet turbulence.
Wavelet Cutoff | waveletCutoff – Turbulence with smaller amplitude will be cut off to reduce calculation time.
No-Export Channels | rsTempChannels – 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.
Example: Resimulation with Wavelet Turbulence
The example below shows the difference between a base Fire/Smoke simulation and the Resimulation result when using Wavelet Turbulence.
Base Simulation
Resimulated with Amplify Resolution = 1
and Wavelet Nice Method
Time Bend Resimulation
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.
Use Time Bend Controls | rsGridTimeBend – 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.
Time Bend Method | rsGridTimeBendMethod – 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.
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.
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.
Example: Time Bend Resimulation
The example below shows the difference between the Input 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.
Input Play Speed = 0.2, Interpolation Blend
Slow Down method + Wavelet
General-Purpose method + Wavelet
Resimulation Cache
During resimulation, Phoenix reads cache files from the Base Cache Files Path, performs resimulation operations, and then saves a new cache sequence in the Output and Render Path.
For information on changing the default paths for resimulation, see the Tips and Tricks page.
Base Cache Files Path | rsInput – Specifies the base simulation caches which will be read as base for resimulation. $(same_as_output) by default. The field below shows the resolved full path.
Output and Render Path | rsOutput – Specifies the path for writing the output cache files from Fire/Smoke resimulation. Note that Liquid resimulation overwrites the files in the Base Cache Files Path and also uses that path for preview and rendering. See the Simulation Save Path parameter in the Output Rollout for more details on the $(...) macros you can use. The field below shows the resolved full path.
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.
You can use the same Output and Render Path as the Base Cache Files Path, and this way Phoenix will not create 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.
The following error message may appear when you start a re-simulation:
"Cannot start the Re-Simulation! Please make sure the simulation was run with the 'Velocity' channel checked under the 'Output' rollout, and that the cache files in the Simulation 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-simulation. These are all possible; you just need to have velocity in the base cache and an existing path to it.