source_liquid
Specifies the parameters of a source that emits properties into the liquid simulation.
Inputs
geometry
An array of input meshes, points and volumes that define the source geometry.
General
enable_liquid_source
Enables the source.
start_frame
The frame at which emission from the source starts.
use_end_frame
Can be enabled to stop the emission at a certain frame. Otherwise emission will continue for the duration of the simulation.
end_frame
The frame at which emission from the source stops.
resolution_mode
How the voxel size is determined for mesh emitters.
Absolute
: The size of an emitter voxel is thefluid_detail_size
value in world-space units.Relative
: Thefluid_detail_size
is taken to be proportionate to the largest dimension of the source axis-aligned bounding box. So, a cube that is 20 units in size will have a world-space voxel size that is 20 times larger than the specifiedfluid_detail_size
value inRelative
mode. For sources, the bounds of the source mesh at the start frame are used to determine thefluid_detail_size
andgeo_detail_size
for the full animation, even if the source size is animated.
Point Settings
passthrough_points
Turn on this option to use the point_position
of the input geometry as the initial point_position
for the points.
passthrough_properties
When passthrough_points
is on, these additional properties will be copied to the points every frame, and interpolated to substeps when the type supports it.
Geometry Volume Conversion
geo_volume_mode
Defines how an input mesh is voxelized.
Solid
: This mode voxelizes a polygonal mesh as a solid and works best if the mesh is watertight.Shell
: This mode voxelizes a mesh as a thin shell and does not require the mesh to be watertight.
use_fluid_detail_size
Uses fluid_detail_size
to voxelize the sources instead of geo_detail_size
.
geo_detail_size
The size of the smallest resolvable detail in the voxelized emitters. When emitting from highly detailed meshes, you can sometimes improve performance without sacrificing visible detail in the simulation by setting this value higher than the fluid_detail_size
.
geo_volume_offset
The amount to offset the voxelized volume when emitting from meshes or points. Positive values expand the volume and negative values shrink it.
min_hole_radius
Fills gaps and holes that have a smaller radius than this value, when emitting from meshes using Solid
mode.
optimal_adaptivity
Uses coarser voxels in planar and smooth areas. This can increase performance by reducing the number of voxels.
display_diagnostic
Whether to display the sources.
Liquid Properties
fluid_detail_size
The size of the smallest resolvable detail in the liquid or other property emitted from this source. In the presence of multiple sources with arbitrary fluid_detail_size
, the fluid_detail_size
of a particular source may not be exact. More specifically, the finest resolution level in the simulation will be determined from the finest fluid_detail_size
of all the input sources. For the remaining sources, the source's resolution level maps to the closest discrete level in the adaptive grid structure. This means that small differences in fluid_detail_size
may not produce any visible changes.
mass_density
The mass density of the emitted liquid using the mode specified by mass_density_mode
.
- Connect a
float
to use a constant value. - Connect a scalar field to vary values based on position.
- Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
- Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.
mass_density_mode
How mass_density
is emitted.
set
: Sets a source into a property (note that if edges are hard in the input, this will also be the case in the output).rate
: Blends and adds a source as a time-dependent rate into a property.add
: Blends and adds a source into a property.subtract
: Blends and subtracts a source into a property.over
: Blends a source into a property.min
: Blends based on the minimum of the source and the property.max
: Blends based on the maximum of the source and the property.multiply
: Blends based on the product of the source and the property.
expansion_rate
Expands or contracts the liquid within the emitter. Positive values push points out of the emitter in all directions, while negative values pull points in, and a value of 0.0 neither pushes nor pulls.
For example, to fill a container from the bottom, you can use a positive expansion_rate
to push points out of the emitter to refill the emitter as it empties.
The expansion can be further controlled via influence fields connected to the influences
port on the simulate_liquid
compound.
For example, influence_set_property
with key set to voxel_expansion_rate
combined with a mask_influence
can be used to confine expansion to a certain region.
Mathematically, this value defines the relative volume expansion per second that the liquid solver tries to maintain in each voxel of the emitter's velocity field. A value of 0.0 corresponds to an incompressible fluid.
expansion_rate_mode
Same options as for mass_density_mode
.
stickiness_strength
The amount that the liquid from this emitter adheres to nearby colliders. Stickiness pulls liquid towards colliders in the normal direction, but does not affect the tangential liquid velocity. The stickiness is strongest near the collider surface and tapers off towards the edge of the stickiness band.
stickiness_strength_mode
Same options as for mass_density_mode
.
stickiness_bandwidth
How close the liquid from this emitter needs to be to a collider for the stickiness to affect it, in world-space units.
stickiness_bandwidth_mode
Same options as for mass_density_mode
.
initial_speed
The initial speed (velocity magnitude) of properties emitted.
- Connect a
float
to use a constant value. - Connect a scalar field to vary values based on position.
- Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
- Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.
initial_speed_direction
The initial velocity-direction of properties emitted.
- Connect a
float3
to use a constant value. - Connect a scalar field to vary values based on position.
- Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
- Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.
speed_mode
How initial_speed
, initial_speed_direction
and inherit_velocity
is emitted. The options are the same as for fog_density_mode
.
inherit_velocity
The proportion of the source geometry's velocity added to the velocity of properties emitted by the source.
- Connect a
float
to use a constant value. - Connect a scalar field to vary values based on position.
- Connect a string with the name of a property on the source geometry to use the value of that property at the emission location.
- Connect an array whose size matches the number of points or voxels in the geometry as an alternative to using a pre-existing property.
When using a vary_source_property
node to randomize inherit_velocity
, the value of inherit_velocity
must be set to the smallest number used in the randomization to get a smooth trail in the presence of negative inherit_velocity
values.
trail_smoothness
The smoothness of liquid emitted in the presence of large source velocities. If the emitted trail of liquid has too much noise or obvious holes, trail_smoothness
can be increased in increments of one to reduce such artifacts.
On the iterate
compound inside source_liquid
there are some additional controls that can come in handy to ensure smooth emission in the presence of large velocities and/or large negative or positive inherit_velocity
values:
source_time_shift
shifts the emission forward or backward in time by the specified proportion of a time step. This can be used to prevent the emission from appearing ahead of or behind a fast-moving emitter when using large positive or negative values ofinherit_velocity
. The value can be varied continuously. A value of 0 emits over the range traveled in the current time step, a value of -1 emits over the range traveled in the previous time step, and a value of 1 emits over the range traveled in the next step.source_time_stretch
is a factor for stretching the region of space traveled by the source and emitted into, if the liquid has gaps or lags behind an emitter with large negativeinherit_velocity
.- You can use
scale
on thecompute_time_shift_and_stretch
sub-node to adjustsource_time_shift
andsource_time_stretch
together. Ascale
value of 1 is good for things like straight rocket trails, but values closer to 0 prevent streaks along paths with high curvature. You can animate this over time to adjust for changes in curvature.
Additional Properties
additional_properties
Connect set_property
nodes to define and initialize additional properties that are transported along the flow. These properties can be modified during the simulation by using influences
.
Outputs
liquid_source
The output is an object that contains an aggregation of source related inputs to the liquid solver and should be connected to the sources
port on a simulate_liquid
node.