Table of Contents

Overview


The Input rollout determines the path of the input cache files for rendering and previewing, as well as provides controls for playback effects.

Note that some playback settings require a fractional input frame, in which case, the frame is blended between the previous and the next one.

To set up rendering and simulation cache paths manually, see Changing the Default Phoenix Paths in the Tips and Tricks page.

UI Path: ||Select PhoenixFDSim|| > Attribute Editor > Input rollout

Parameters



Cached Frames – Shows information about the cached frame range.

Preview and Render Path | inPath, inPathResolved – This is the path to the cache sequence to shown in the preview and rendered. The default is $(same_as_output), meaning the preview and render would show the caches created by the simulation, reading them from the path specified in the Output rollout. Use the button to select the path or type it manually. Phoenix has some keywords that can be used for more flexibility:

Click Here to expand additional $(VARIABLE) and Channel Mapping information

$(same_as_output) – Uses the output path as input. The resimulation output path will get used if the Resimulate option is enabled in the Resimulation rollout.
$(same_as_output)[nodeName] – Use the output path of "nodeName" as input.
$(simoutput) – Same as $(same_as_output).

$(same_as_resimoutput) – Uses the resimulation output path as input.
$(same_as_resimoutput)[nodeName] – Uses the output path of "nodeName" as input.
$(resimoutput) – Same as $(same_as_resimoutput).

$(work_path) – $(data_dir)/$(scene)_Phoenix_frames/$(nodename)_####.aur
$(data_path)
 – $(data_dir)/$(scene)_Phoenix2_frames/$(nodename)_####.aur
$(scene_path)
 – $(dir)/$(scene)_Phoenix_frames/$(nodename)_####.aur
$(scene_dir)
 – $(dir)/$(scene)_Phoenix2_frames/$(nodename)_####.aur
$(implicit) – Same as $(data_path).
$(dir) – The scene directory.
$(data_dir) – The current workspace data directory.
$(scene) – The scene file name.
$(nodename) – The name of the node.
$(fullname) – The full name of the node.
$(workspace) – The current workspace directory.
$env(<variable_name>) – An environment variable. See Using Environment Variables.

If you are transferring your scene and assets between Windows and Linux, prefixing your path with the $(workspace) or $env(<variable_name>) macros can make it possible to use the same scene without any manual modifications to the cache path.

Pound signs can be used to specify the cache frame number with at least as many digits as the pound signs. If the number of frame digits is less than the number of pound signs, the number is padded with zeroes to the left. For example:



Result
Frame Number#######
11010001
1010100010
1000100010001000

The default rendering settings are tuned to Phoenix simulations, and they might not work well for imported 3rd party cache files.
This is why when loading OpenVDB or Field3D files generated by other software packages, you are given the option to choose a preset. The presets will change the render settings to reasonable default values. The presets will also modify the orientation of the cache files depending on the coordinate system of the source application (Y-up versus Z-up) by Enabling / Disabling the Flip Up Axis option.
You can further edit the parameters in the Rendering rollout to achieve the desired appearance of your simulation.


You can suppress showing of the dialogues offering presets using the inDontOfferPresets attribute of the Simulator. Setting inDontOfferPresets to 1, as shown in the image below, will disable the presets pop-up window displayed when a VDB or Field3D cache files are loaded.



Clicking the "..." button will open a menu with the following options:



Browse – Opens a dialog for choosing one of several cache file types. Phoenix can import *.f3d, *.vdb and *.prt files from other fluid simulator software products.  See How to import and render simulations from FumeFX, Houdini and Maya for more information.

Supported file formats are:

  • Phoenix *.aur 
  • Field3D *.f3d 
  • OpenVDB *.vdb
  • Krakatoa *.prt

Reset to Default - Resets the Preview and Render Path to the default value of $(same_as_output).

Help - Opens the Help page for the Input rollout of the Phoenix Simulator.


Time Bend Controls


This section contains playback options you can use for retiming a simulation after it has already finished. Using these, you can speed up, slow down or animate the motion of the simulated sequence. When retiming an existing simulation from this section without re-simulating, additional RAM might be used, and loading a new timeline frame may take longer when the frame must be obtained by creating a new one between two adjacent cache files. We will refer to the process of creating an intermediate frame from two caches as Blending. Some of the settings in this section might require specific grid or particle channels to be saved to the cache files during simulation from the Output rollout.

In order to blend FLIP particles (e.g. Foam, Splash, etc.), enable the export of the Particle ID channel from the Output rollout of the Simulator.

To blend Drag particles, enable the export of the Particle ID channel from the Particles section of the Phoenix Source used to add them into the simulation.



Playback Mode | inMode – Chooses between different options for animation control:

Linear – This is the default mode. The cached sequence is played with a constant speed and can be offset forward or backward on the timeline, as well as sped up or slowed down.
Cache Index – The Direct Cache Index specifies which cache file will be loaded for the current timeline frame. Can be used to either show a static simulation, or the Direct Cache Index can be animated in case you want varying play speed, including playing the simulation in reverse.
Loop – A specified piece of the simulated sequence is looped. Can be used for flowing and repeated effects such as fireplaces, campfires or torch fires, water in fountains, waterfalls or boiling liquid. In this mode, the Cache Origin parameter specifies the beginning of the looped sequence, the Length parameter specifies the length of the loop, and Loop Overlap specifies the number of overlapped frames that ensure a smooth transition between the end and the start of the loop. Note that you need to have simulated at least Cache Origin Length + Loop Overlap cached frames for this mode to work correctly. When looping particles, make sure to export the particle ID channel in the Output rollout.

Direct Cache Index | inIndex – Used in Cache Index mode and specifies the cache file index for the current timeline frame. This can be animated in order to achieve more interesting time-bend effects.

Play Speed | inPlaySpeed – A multiplier for the playback speed. Value of 1 means that each timeline frame corresponds exactly to one cache file index. If the play speed is not exactly 1.0, frames will be blended between by using the method specified by the Grid Blend parameter. If you want to blend particles, you must have exported their ID channel during simulation (this can be done from the PHX Source rollout). Note that Play Speed is not keyable - you should switch to Cache Index mode and animate the Direct Cache Index.

Play Length | inMaxLength – The duration in timeline frames. In Linear mode, when this parameter is larger than 0, the sequence length is limited to its value. In Loop mode, this parameter shows the loop length. 

Auto Origin | autoOrigin – When enabled, if there are any loaded cache files, automatically set the Timeline Origin and the Cache Origin to the first frame of the cache sequence, so changing the Play Speed will stretch the sequence relative to this frame.

Timeline Origin | inPlayAt – An offset specifying which timeline frame the starting cache will be placed on. You can think of it this way: "Put cache #(Cache Origin) on timeline frame #(Timeline Origin)".

Cache Origin | inReadOffset – An offset specifying which cache file from the sequence will be placed on the timeline at frame Timeline Origin. You can think of it this way: "Put cache #(Cache Origin) on timeline frame #(Timeline Origin)".

Loop Overlap | inLoop – In Loop mode, specifies the number of timeline frames after the loop's end that will be blended with the loop's beginning to make for a smooth transition. Keep in mind that the end transition frames are not in front of the sequence end but after it. For example, if the loop starts at frame 35 and has a Play Length of 20 and a Loop Overlap of 5, the transition frames will start at frame 55 and will end at frame 59, which means the simulation must be at least 59 frames long. It is recommended that the Loop Overlap value be longer than the average "lifetime" of the simulation elements while involved in highly visible motion. For example, for a waterfall, the Loop Overlap value should be at least the average time it takes for a water droplet to fall the full distance before being absorbed into the water at the bottom. For a campfire, it should be at least the average time for a particle to rise up and disappear/die. Correct setting of this value is especially important for simulations that contain particles. When looping particles, make sure to export the particle ID channel in the Output panel.

Grid Blend | inBlendMethod – Used for grids when the Play Speed parameter is not exactly 1.0, or the Direct Cache Index for the current timeline frame is fractional, or you have specified a Loop Overlap in Loop mode. In these cases, a single timeline frame must be constructed from two cache files by blending between them. Each time the timeline is scrolled to a new frame, the caches for this frame will be blended again. You can choose between three different methods for blending between grids from cache files. During Resimulation the Grid Blend option will be ignored and the blending will be handled by the resimulation process. Note that particles are blended using a much simpler method and Grid Blend does not affect them:

Interpolation – Simple linear interpolation suitable for slow simulations. This is the fastest method but it does not capture movement well and may produce flickering.
Velocity – Velocity-based interpolation. Produces better results, but works more slowly. Captures well the movement of the fronts of the plumes, but does not work well for smoke moving backwards, and also may produce flickering. It requires an exported grid velocity channel from the Output rollout.
Precise Tracing - Improved Velocity based interpolation for Fire and Smoke simulations. Captures plume movement very well and can handle very low Play Speeds. Requires an exported grid Velocity channel, as well as Advection Origin channel from the Output rollout.

Grid Frame Blending is better suited for simulations without much variety in velocity. For more chaotic fire/smoke simulations, it is better to run a Resimulation using Time Bend controls. Time Bend Resimulation will calculate a better intermediate result for each frame and store it in new cache files that can later be loaded faster, as opposed to Frame Blending which re-launches every time the timeline frame changes. However, for very slow moving simulation the Precise Tracing method produces better-looking results than Time Bend Resimulation. For more information, see How to slow down a simulation, animate the time-scale, etc.

Load Nearest If Missing | inLoadNearest – If there is no cache file at the required frame, the nearest cache is found and loaded. This is useful for a simulation that ends with a sequence of static frames (for example, still liquid or freezing fire) as it prevents the need to render multiple identical frames after movement has stopped.

Flip Up Axis | inFlipYZ – When enabled, flips the Y and Z axis of the cache's transformation. This is useful when the cache was created with a different up axis (for example, in 3ds Max).


Example: Timeline Origin


The following example demonstrates how the Timeline Origin parameter can be used to specify which frame on the timeline is treated as the first frame when reading the Input Path cache files.

The files go from simulationFrame_000 to simulationFrame_030. When the Timeline Origin is set to 10, they are read as if they were saved as simulationFrame_010 to simulationFrame_040.


Example: Cache Origin and Play Speed


The following example demonstrates how the Cache Origin and Play Speed can be used to offset and speed up the input cache files.

The files go from simulationFrame_000 to simulationFrame_030. When the Timeline Origin is set to 100, they are read as if they were saved as simulationFrame_100 to simulationFrame_130.

The Cache Origin is then used to specify which simulationFrame will be placed on Timeline Origin = 100. Because Cache Origin is set to 10, the whole sequence is shifted 10 frames back such that simulationFrame_000 is placed at frame 90. Thus, the sequence now goes from frame 90 to frame 120.

The Play Speed is then set to 2.0. Those thirty frames are now reduced to fifteen. The Cache Origin frame is treated as the middle point when shrinking the sequence.


Example: Looping a Simulation


The following example demonstrates how the Input rollout parameters can be used to loop a simulation.

The Timeline Origin parameter is set to 0 - this will be the first frame of the timeline which the Input Path files read into the scene by the Simulator will be placed on.

The Cache Origin is set to 10 so simulationFrame_010 will be read and placed at Timeline Origin = 0.

The Play Length is set to 15 so the sequence now repeats itself every 15 frames when played back (those are actually simulationFrame_010 to simulationFrame_025).

Finally, the Loop Overlap parameter is set to 5 to provide a few extra frames for blending the start and end of the loop together in a smooth transition.


Example: Play Speed


Grid Channel Smoothing


Grid Smoothing is performed after the cache file is loaded for the current frame, so for large grids it could cause significant lag after changing frames. To prevent this from occurring, switch it off during the design process and re-enable it again before rendering.

The controls in this section allow you to smooth the grid channels loaded from cache files for preview and rendering. You can use this to prevent grid artifacts on meshed grid channels such as the Smoke or Temperature surface, to remove unwanted noise in these channels, or to get smooth motion blur by smoothing the Velocity grid channel.



Threshold | inSmoothTemp[0], inSmoothSmoke[0], inSmoothUVW[0], inSmoothFuel[0], inSmoothVel[0] – If this value is 0, the entire grid will be smoothed evenly. The higher the threshold is raised, the less voxels will be affected and only the sharpest gradients will be smoothed. The highest value you could use here depends on the range of the values of the smoothed channel - for Smoke and Liquid it's usually in the [0,1] range, while for Velocity it could go as high as several hundred and for Temperature it could be over a thousand. If you set this value too high, no voxels will be smoothed at all.

Similarity | inSmoothTemp[1], inSmoothSmoke[1], inSmoothUVW[1], inSmoothFuel[1], inSmoothVel[1] –  Increasing this value will allow you to smooth only the finer small-scale noise without changing the areas of the fluid which are already smooth. Note that just like the Threshold option, this value also depends on the range of the selected channel. If you want to remove only some sharp fine disturbances from the simulation without blurring other areas, set the Threshold to 0, increase the Similarity to the highest values the selected channel can take and then start reducing it until the small-scale noise is removed, while the larger fluid shapes are retained. This option won't take effect if the Threshold parameter is raised to the maximum. 

Random Variation | inSmoothTemp[2], inSmoothSmoke[2], inSmoothUVW[2], inSmoothFuel[2], inSmoothVel[2] – This parameter introduces noise of uniform scale in the channel before smoothing is applied. This can be useful if you want to give the fluid a more homogeneous pattern and this way it can also help hide grid artifacts. Note that just like the Threshold option, this value also depends on the range of the selected channel. You can use this option to only add noise to the channel without smoothing it - in order to do this, set both Threshold and Similarity to the highest values of the selected channel and this way they will not take effect.

Enable | inSmoothTempEnbl, inSmoothSmokeEnbl, inSmoothUVWEnbl, inSmoothFuelEnbl, inSmoothVelEnbl – This checkbox enables frame smoothing for the specified input channel.


3rd Party Channels Mapping


Different applications use different channels and might have different names for them. When loading f3d/vdb files, Phoenix tries to automatically make the conversion to the supported channels. If a channel is not mapped by default, a channel can be manually set from the drop-down menu.


 All mappings are kept in a single string attribute, accessible by the name "userChannelMappings". An example mapping string is:

2,density;10,fuel;1,temperature;4,vel.x;5,vel.y;6 ,vel.z;

The string is composed of pairs of a Phoenix channel index and a string channel name. Phoenix supports the following channels with the respective indices:

Smoke - 2
Temperature - 1
Fuel - 10
Velocity.x - 4
Velocity.y - 5
Velocity.z - 6
Red - 7
Green - 8
Blue - 9
Viscosity - 22
Wavelet Energy - 14
Wavelet.u - 19
Wavelet.v - 20
Wavelet.w - 21