This page provides information on the Dynamics rollout for liquids.
This rollout controls the fluid's motion parameters.
UI Path: ||Select Liquid Simulator | LiquidSim object|| > Modify panel > Dynamics rollout
Simulate Air Effects | simair – When enabled, turns on the built-in air simulator. Strong sources or fast moving obstacles inside the simulator will create air velocities to carry splash, mist, and foam particles at high speed. Used mostly when realistic mist is needed. The simulation is not expensive, but can dramatically increase the splash and mist quality.
The air effects stop affecting particles once they exit the simulator, thus altering the particle speed and direction around the simulator walls.
Motion Inertia example below.Motion Inertia | ext_wind – When enabled, moving the simulator object over a series of frames causes inertial forces in the opposite direction of the movement. This allows you to link the simulator to a moving object and keep the size of the grid relatively small, as opposed to creating a large grid that covers the entire path of the moving object. Motion Inertia can be used for moving ground and water vehicles, torches, fireballs, rockets, etc. When this option is used together with the Initial Fill Up option and Open Container Wall conditions, a simulation of moving an object over a sea surface can be done. For more information, see the
When running liquid simulations with the Initial Fill Up option and Open Container Wall conditions, the surface of the generated liquid should remain smooth. If you encounter artifacts in the form of horizontal lines perpendicular to the direction of movement, with Motion Inertia enabled, please ensure that the Scene Scale is reasonable considering the type of effect being simulated. Other possible solutions in case tweaking the scale is not possible are to either increase the Steps per Frame, or to reduce the Cell Size of the Simulator.
Liquid artifacts usually appear when the liquid particles move a great distance between frames. Increasing the Scene Scale or the Steps per Frame allows them to stabilize, which in turn keeps the surface smooth.
Gravity | grav, gmul – Phoenix Gravity makes the liquids fall down and makes fire rise up. The Gravity option is a multiplier, so using the default 1.0 will make it behave like real world gravity, setting it to 0.0 will disable its effect completely, and you can also use negative values, which will inverse the gravity effect.
Clear Inside on the geometry and liquid will not be created at simulation startup in the voxels inside the geometry.Initial Fill Up | initfill, flevel – When enabled, the container is filled up with liquid when the simulation starts. This option determines the fill-up level, measured in % of the vertical Z size of the Grid. For liquid simulations using Confine Geometry, you can enable
The liquid created through the Initial Fill Up option will be initialized with the values set for the Default RGB and Default Viscosity parameters below.
Fill Up For Ocean | oceanfill – Changes the Open Container Walls of the simulator so they would act like there is an infinite liquid volume beyond them. Pressure will be created at the simulator walls in order to support the liquid, and if the surface of a wall below the Initial Fill Up level, or the bottom, gets cleared from liquid during simulation, new incoming liquid would be created. You can also animate the Simulator movement or link it to a moving geometry, and it would act like a moving window over an ocean that stays in place. This way you can simulate moving ships or boats that carry their Liquid Simulator along with them as they sail into an ocean, so you don't need to create one huge long Simulator along their entire path.
In order to eliminate air pockets between Solid geometry and the liquid mesh, this option will automatically set all Solid voxels below the Initial Fill Up level to contain Liquid amount of 1, even if they don't contain any Liquid particles. If you don't want this effect, enable Clear Inside from the Phoenix FD Properties of the Solid geometry. See the Fill Up For Ocean and Clear Inside example below.
All simulator walls must be set to Open from the Grid rollout for Fill Up For Ocean to take effect.
Steps per Frame | spf – Determines how many calculations of the simulated grid are performed between two consecutive frames of the timeline.
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 let's take an object that is hitting the liquid surface with high speed. 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 - the result won't look good. You have to introduce intermediate steps until the changes of each step get small enough. The Steps per frame option 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 the Steps per frame need 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 FD Explained.
Time Scale | timescale – Specifies a time multiplier that can be used for slow motion effects. For more information, see thebelow.
In order to achieve the same simulation look when changing the Time Scale, the Steps per frame value must be changed accordingly. For example, when decreasing the Time Scale from 1.0 to 0.5, Steps per frame must be decreased from 4 to 2. All animated objects in the scene (moving objects and sources) must be adjusted as well.
Active Bodies Mult | fluidToSolidInteractionMult - A multiplier for the effect of the Velocity channel on the Active Bodies in the Simulator. To convert a polygon object into an Active Body, enable the Active Body checkbox in the Phoenix FD Properties for that object.
Default RGB | lq_default_rgb - The Simulator is filled with this RGB color at simulation start. The Default RGB is also used to color the fluid generated by Initial Fill Up, or by Initial Liquid Fill from the Phoenix FD Properties of a geometry - both of these options create liquid only at the start of the simulation. During simulation, more colors can be mixed into the sim by using a Phoenix FD Liquid Source with RGB enabled, or the color of existing fluid can be changed over time by using a Phoenix FD Mapper. If a Phoenix FD Liquid Source does not have RGB enabled, it also emits using the Default RGB value.
The RGB Grid Channel has to be enabled in the Output Rollout for this parameter to take effect.
RGB Diffusion | rgbdiff – Control how quickly the colors of particles are mixed over time during the simulation. When it's set to 0, each FLIP liquid particle carries its own color, and the color of each individual particle does not change when liquids are mixed. This means that if red and green liquids are mixed, a dotted red-green liquid will be produced instead of a yellow liquid. This parameter allows the colors of particles to change when the particles are in contact, thus achieving uniform color in the resulting mixed liquid. For more information, see thebelow.
Default Viscosity | lqvisc – Determines the default viscosity of the liquid. This value is used when no viscosity information for the emitted liquid is provided to the Simulator by the Source. For more information, see the below.
- All FLIP liquid particles are set to this viscosity value at simulation start. You should use higher viscosity for thicker liquids such as chocolate, cream, etc
- The Default Viscosity is also used for the fluid generated by Initial Fill Up, or by Initial Liquid Fill from the Phoenix FD Properties of a geometry - both of these options create liquid only at the start of the simulation.
- If a Phoenix FD Liquid Source does not have Viscosity enabled, it emits using the Default Viscosity value.
- During simulation, liquids of variable viscosity can be mixed into the sim by using a Phoenix FD Liquid Source with Viscosity enabled.
- The Viscosity Grid Channel export has to be enabled in the Output Rollout for variable viscosity simulations to work.
- The viscosity of existing liquid can be changed over time by using a Phoenix FD Mapper in order to achieve melting or solidifying of fluids.
- You can shade the liquid mesh or particles using the fluid's viscosity with the help of the Phoenix Grid Texture or Particle Texture.
- It's important to note that using viscosity does not automatically make the liquid sticky. For example, molten glass is viscous, but not sticky at all. Stickiness can be enabled explicitly from the Wetting parameters section. If Stickiness is not enabled, even the most viscous fluid would slide from the surfaces of geometries or from the jammed walls of the Simulator.
Viscosity Diffusion | viscdiff - Phoenix FD supports sourcing of fluids with different viscosity (thickness) values. This parameter specifies how quickly they blend together. A low value will preserve the distinct viscosities, while a high value will allow them to mix together and produce a fluid with a uniform thickness.
Non-Newtonian | nonnewt – Modifies the viscosity with respect to the liquid's velocity to overcome the conflict between viscosity and wetting, where a high viscosity of real liquids prevents wetting. Non-Newtonian liquids are liquids that behave differently at different velocities. This parameter accounts for this behavior by decreasing the viscosity in areas where the liquid is moving slowly and retains a higher viscosity where the liquid is moving quickly. For example, to cover a cookie with liquid chocolate, high viscosity is needed in the pouring portion of the motion to obtain the curly shape of the chocolate as it lands on the cookie and begins to settle down. On the other hand, a smooth chocolate is needed to settle in over the cookie without roughness and holes. If the viscosity is high enough, the chocolate might look right during the pouring and settling motions but won't settle in to form a smooth thin layer over the cookie. This parameter decreases the viscosity where the liquid is moving slowly (over the surface of the cookie) while keeping the faster-moving stream tight and highly viscous. For more information, see the Non-Newtonian example below.
Droplets Surfing | dsurf – This parameter affects the liquid and the splash particles, controlling how long a particle hovers on the surface before it merges with the liquid. The parameter is used mostly in ocean/wave simulations.
Example: Motion Inertia
The following video provides examples of moving containers with Inertial Forces enabled to show the differences between values of 0.1, 0.5, and 1.0.
Example: Fill Up For Ocean and Clear Inside
This example shows the Liquid voxels, with a submerged Solid ellipsoid. There are never FLIP particles inside it, but disabling Clear Inside will fill it with Liquid voxels so the liquid mesh can intersect it.
Example: Steps Per Frame
The following video provides examples to show the differences of Steps per Frame values of 1, 5, and 15.
Example: Time Scale
The following video provides examples to show the differences of Time Scale with values of 0.1, 1.0, and 2.0.
The following video provides examples to show the differences of Viscosity with values of 0.0, 0.5, and 1.0.
The following video provides examples to show the differences of Non-Newtonian with values of 0, 0.1, and 1.0.
Example: RGB Diffusion
The following video provides examples to show the differences of RGB Diffusion with values of 0.0, 0.5, and 1.0.
Strength | lqsurft – Controls the force produced by the curvature of the liquid surface. This parameter plays an important role in small-scale liquid simulations because an accurate simulation of surface tension indicates the small scale to the audience. Lower Strength values will cause the liquid to easily break apart into individual liquid particles, while higher values will make it harder for the liquid surface to split and will hold the liquid particles together. With high Strength, when an external force affects the liquid, it would either stretch out into tendrils, or split into large droplets. Which of these two effects will occur is controlled by the Droplet Breakup parameter. For more information, see the Surface Tension example below.
Droplet Breakup | lqstdropbreak – Balances between the liquid forming tendrils or droplets. When set to a value of 0, the liquid forms long tendrils. When set to a value of 1, the liquid breaks up into separate droplets, the size of which can be controlled by the Droplet Radius parameter. For more information, see the Droplet Breakup example below.
Droplet Radius | lqstdroprad – Controls the radius of the droplets formed by the Droplet Breakup parameter, in voxels. This means that increasing the resolution of the Simulator will reduce the overall size of the droplets in your simulation.
Increasing the Droplet Radius can dramatically slow down the simulation. Please use it with caution.
Example: Surface Tension
The following video provides examples to show the differences of Surface Tension with values of 0.0, 0.5, 1.0 and Droplet Breakup 0.0
Example: Droplet Breakup
The following video provides examples to show the differences of Droplet Breakup with values of 0.0, 0.5, 1.0 and Droplet Radius set to 3.0 voxels.
Simulation of wetting can be used in rendering for blending of wet and dry materials depending on which parts of a geometry have been in contact with the simulated liquid. Wetting can also change the behavior of simulated viscous liquid and make it stick to geometries.
The wetting simulation produces a particle system called WetMap. It can be rendered using a Particle Texture map which blends between a wet and a dry surface material.
Wetting | wetting – Enables the wetting simulation. The liquid will leave a trail over the surfaces of bodies it interacts with.
Consumed Liquid | lq2wet – Controls how many liquid particles disappear when creating a single wetmap particle. The main purpose of this parameter is to prevent long visible tracks from being left by a single liquid particle. For more information, see thebelow.
Drying Time (sec) | drying – Controls the drying speed in seconds. The WetMap particles are born with a size of 1, and if they are in an air environment, the size decreases until it reaches zero after the time specified with this parameter.
Sticky Liquid | wetdyn – This option produces a connecting force between the WetMap particles at the geometry surface and nearby liquid particles, when the liquid particles have at least a little Viscosity. For more information, see thebelow.
Geometry transforming or deforming at a high velocity may cause some or all of the Wetting particles stuck to it to disappear. To resolve this, dial up the Steps Per Frame parameter from the Dynamics tab of the Simulator.
Example: Consumed Liquid
The following video provides examples to show the differences of Consumed Liquid values of 0, 0.5, and 1.
Example: Sticky Liquid
The following video provides examples to show the differences of Sticky Liquid values of 0, 0.5, and 1.
The Active Bodies simulation currently supports interaction between scene geometry and the Phoenix FD Liquid Simulator. When an object is selected as an Active Body, the simulation both influences and is influenced by the Active Body's movement. Mutual interaction between the Active Bodies themselves is not supported yet. Interaction between Active Bodies and the Phoenix FD Fire/Smoke Simulator is not supported.
For in-depth information on Active Bodies, please check the Active Bodies Setup Guide.
Active Bodies | use_activeBodySolverNode – Enables the simulation of Active Bodies.
Solver | activeBodySolverNode – Specifies the Active Bodies Solver node holding the objects to be affected by the Phoenix FD Simulation.
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 rollout 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:
- 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.
- 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 rollout → 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.
The following video provides examples to show the differences of Interpolation values of 0, 0.1, and 1, and an Interpolation Step of 1.
Example: Interpolation Step
The following video provides examples to show the differences of Interpolation Step values of 1, 3, and 6.