source_air
Specifies the parameters of a source that emits properties into the simulation grid.
Inputs
geometry
An array of input meshes, points and volumes that define the source geometry.
General
enable_air_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.
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.
Air Properties
fluid_detail_size
The size of the smallest resolvable detail in the smoke 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.
fog_density
The visual density of the smoke emitted into the voxel_fog_density
property using the mode specified by fog_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.
fog_density_mode
How fog_density
is emitted into voxels.
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.
temperature
The temperature in Celsius of the smoke emitted into the voxel_fog_temperature
property.
- 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.
temperature_mode
How fog_density
is emitted into voxels. The options are the same as for fog_density_mode
. When working with combustion, it is recommended to use the set
temperature_mode
, as otherwise the temperature can grow to physically unrealistic temperatures very quickly.
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 into voxels. 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 smoke emitted in the presence of large source velocities. If the emitted trail of smoke 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_air
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 smoke 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, as well as source_fuel nodes, to define and initialize additional voxel properties that are transported along the flow. These properties can be modified during the simulation by using influences
.
Outputs
air_source
The output is an object that contains an aggregation of source related inputs to the aero solver and should be connected to the sources
port on a simulate_aero
node or to the air_source
port on a source_fuel
node.