On this page |
|
Since | 18.0 |
See Pyro look development for information on using the parameters to achieve different flame and smoke looks.
This node is an extension of the
Smoke Solver (Sparse). It considers an extra
simulation field (flame
, which captures the presence of flames) and adds some
extra shaping parameters to allow for more control over the emergent look.
Setting Up ¶
The essential building blocks of a smoke simulation are the object, solver, and sourcing. The Smoke Object (Sparse) node creates a dynamic object containing the required fields, which are then evolved by the solver as the simulation proceeds. The simplest smoke simulation needs the following data:
-
density
scalar field that contains where and how much smoke is present; -
temperature
scalar field that’s used for buoyancy calculations; -
vel
vector field that captures the instantaneous motion of the smoke.
This solver takes care of ensuring these fields change in a manner consistent
with smoke, but sourcing is responsible for injecting these quantities through
the course of the simulation. For example, you may want to continuously add to
density
at the soot source or temperature
to cause hot regions to rise. See
pyro sourcing for more information.
Note
Tools under the Sparse Pyro FX shelf can be used to create setups involving the pyro solver.
Sparsity ¶
By default, this solver operates in sparse mode; that is, the needed
calculations are performed only in the areas of interest, as governed by the
active
field. This region is built by looking at the Reference Fields
parameter under the Resizing subtab of the Advanced tab: positive areas
of the specified fields are flagged as active. This intermediate active region
is then dilated to provide a buffer for smoke to expand into. With the
Reference Fields set to density
, for example, the solver will run its
operations near areas which have some soot, thereby concentrating the
computational effort to the smoke’s visible region.
Inactive areas in sparse mode are treated as vacuum that smoke is free to move into. As such, if there are two puffs of smoke blowing at each other, they will be completely invisible to one another until they come sufficiently close for their disjoint active regions to merge.
When Enable Sparse Solving is disabled under the aforementioned tab, the solver will work in dense mode, performing a full global solve everywhere within the domain. With the previous example involving two puffs of smoke, they will be immediately aware of each other’s presence. However, dense mode can be substantially slower in some cases.
Tip
You can enable Active Region visualization under the Guides tab of the smoke object to see the active simulation areas.
Flame Field ¶
The flame
field stores the remaining lifetime of reactants (such as fuel)
that are transported by the flow. This field is replenished through
sourcing, and the solver takes care of reducing its
values and generating the desired outputs (per settings under the Flames
tab). Depending on how close reactants are to depletion, they can
-
emit soot (enable Emit Smoke to affect the
density
field), -
increase temperature (enable Add Temperature to affect the
temperature
field), -
cause expansion (turn on Add Expansion to affect the
divergence
field).
Additionally, flame
can be used as the Emission Field for visualization
(on the Smoke Object (Sparse)) or the
Fire Intensity Field for rendering (on the
Pyro Shader).
For example, you may want reactants that release a lot of temperature as they
are “young”, then start emitting soot as they are used up. Assuming flame
is
being sourced with a value of 1, you can accomplish this by setting the Flame
Range under Temperature to 0.5-1
, so that reactants generate a
temperature output throughout the first half of their life. The Flame Range
under Smoke can be set to 0.1-0.4
and remapped using a hill ramp. Then
reactants will leave smoke behind during that part of their life; as long as the
Flame Ramp evaluates to 0 at both of its endpoints, soot will be generated
only within the specified Flame Range.
Inputs ¶
Objects
A smoke object to work on.
Note
When working in sparse mode, Enable Sparse Solving must be enabled on the smoke object.
Advection
Nodes attached to this input will be able to use the smoke’s accurate velocity field. The Gas Advect node can be hooked up, for instance, to advect the points of an attached geometry data along with the smoke.
Note
It is not safe to modify the velocity through this input; use the Sourcing or Forces inputs instead.
Sourcing
This input should be used to modify the simulation fields, by sourcing with a Volume Source, for example. It is important to perform any sourcing that affects the active region in sparse mode through this input.
Note
The active
field at this point is not up-to-date; thus, if you want to
perform an operation that can be done sparsely, it is best to use the
Forces input.
Forces
Microsolvers attached to this input will be run before the final pressure
projection. At this point, the active
field can be used as a stencil for
DOPs that support it.
Note
Before the nodes attached to this input are executed, the active
field
is updated to account for any operations that were performed in the
Sourcing input.
Parameters ¶
Simulation ¶
Calculate Speed Field
When enabled, the speed
field is computed at each time step. This field
stores lengths of the velocity vectors and can be used as the control field
to attenuate the strength of attached microsolvers and shape operators. For
example, you can weaken the effect of turbulence in areas with less motion
by using speed
as its control field.
Note
Speeds are calculated after advection and before any forces are applied.
Time Scale
A scaling factor for time inside this solver. 1 is normal speed, greater than 1 speeds up the simulation, while less than 1 slows it down.
Viscosity
A blur factor on the velocity field. A value of 0 allows adjacent voxels to move in different directions without resistance, creating a more chaotic, turbulent look. Higher values of this parameter result in a more coherent velocity field, creating a more flowing look.
Wind
Velocity of passive wind. This force is treated separately by advection, so the simulation velocity field will not reflect the presence of Wind.
Advection-Reflection ¶
Advection-Reflection
Advection-Reflection attempts to inject energy lost due to pressure projection back into the simulation. Enabling this option may exhibit better vortex retainment in the flow.
Disabled
No reflection is performed; this is the recommended setting for
simulations that involve non-zero goal divergence
, such as explosions.
Single-Project
Performs a single pressure projection per timestep and adds the removed velocity components back at the next step. This option is marginally slower than Disabled, but requires an extra vector field to be carried between timesteps.
Double-Project
Performs two pressure projections and velocity advection passes per timestep. This option is a lot slower than Single-Project, but may yield better results and stability.
Reflection Amount
Fraction of the projected velocities to re-inject when Advection-Reflection is not set to Disabled. Values near 1 will do a better job of conserving energy, but may result in instabilities.
The following video shows Single-Project mode.
The following video shows Double-Project mode.
Temperature ¶
Temperature Diffusion
A blur factor on the temperature field. Higher values diffuse the temperature out further, emulating the spread of heat from hotter to colder areas.
Cooling Rate
How fast the temperature field cools to zero.
Ambient Temp (K)
Temperature corresponding to value of 0 in the temperature
field (in
Kelvin). This represents the ambient temperature of the environment.
Reference Temp (K)
Temperature corresponding to value of 1 in the temperature
field (in
Kelvin). The temperature range is used to calculate strength of the buoyancy
force.
Note
In general, value of T
in the temperature
field corresponds to a
temperature of
Ambient Temp (K) + T * (Reference Temp (K) - Ambient Temp (K))
.
Buoyancy Scale
Hot gas expands, causing it to rise due to lowered density. Acceleration due to buoyancy is calculated using values of the ambient and reference temperatures, as well as the Gravity settings. Value of this parameter is used as a multiplier for the buoyancy force.
Gravity ¶
Gravity Acceleration
Acceleration due to gravity. Stronger gravity results in stronger buoyancy forces.
Gravity Direction
The direction in which gravity pulls. Hotter gas will tend to rise in the opposite direction.
Density Influences Gravity ¶
Enable Density Influences Gravity
Enable this to apply the gravity force on the fluid, scaled based on the density (or some other specified simulation field). With default settings of the parameters in this tab, it has the effect of making denser regions of the fluid fall faster.
Gravity Scale
Scales the overall gravity force applied to the fluid.
Density Field
Specifies the fluid simulation field that will be used to scale the gravity force.
Density Range
The range of values of the Density Field that get mapped to 0-1
.
Density Ramp
Ramp that controls the strength of gravity to be applied, based on the remapped Density Field.
Terminal Velocity
Parts of the fluid with a velocity in the direction of gravity greater than or equal to this value will not have any gravity force applied to it. Enable this if you find that the fluid is accelerating due to gravity more than desired. Increase this value if you find that the gravity force deactivates too early.
Flames ¶
Parameters in this tab of the solver control evolution of the flame
field and
its effect on the simulation. Three possible outputs can be generated from
flame
: soot (density
field), heat (temperature
field), and expansion
(divergence
field). Each of these sets has an amount, a flame range, and the
option to remap the flame field. The flame
value is first fitted from the
respective flame range to the 0-1
range; if remapping is turned on, the ramp
is then evaluated at the fitted value. This number is then multiplied by the
amount parameter to get the output, which is finally merged with the target
field.
Flame Lifespan
The number of seconds it takes to use up a value of 1 in the flame
field.
Smoke ¶
Emit Smoke
When enabled, density is added to the simulation in the specified Flame Range.
Emission Amount
Amount of density output from the flame
field. This parameter acts as a
multiplier for the remapped flame
value.
Merge Method
Controls how the output of the flame
field is mixed with the density
field.
Max
Larger of the two values is taken. This merge method ensures that
density
does not keep accumulating.
Add
Output of the flame
field is scaled by the timestep and added to the
density
field.
Flame Range
The range of values in the flame
field that will generate an output. The
flame
field is first fitted from this range to 0-1
; if Remap Flame
is enabled, the Flame Ramp is then evaluated at this value. The final
output is the product of this remapped flame
value and
Emission Amount.
Remap Flame
When enabled, Flame Ramp is evaluated at the refitted flame value (from
Flame Range to 0-1
) to generate the output.
Flame Ramp
Ramp that controls outputs at different flame
field values.
Temperature ¶
Add Temperature
When enabled, temperature is added to the simulation in the specified Flame Range.
Temperature Amount
Amount of temperature output from the flame
field. This parameter acts as
a multiplier for the remapped flame
value.
Merge Method
Controls how the output of the flame
field is mixed with the temperature
field.
Pull
Wherever output from the flame
field exceeds the temperature
value,
temperature
is pushed towards the output. This merge method ensures
that temperature
does not keep accumulating.
Add
Output of the flame
field is scaled by the timestep and added to the
temperature
field.
Strength
How strongly the temperature
field values are pushed towards the hotter
flame
output when Merge Method is set to Pull.
Flame Range
The range of values in the flame
field that will generate an output. The
flame
field is first fitted from this range to 0-1
; if Remap Flame
is enabled, the Flame Ramp is then evaluated at this value. The final
output is the product of this remapped flame
value and
Temperature Amount.
Remap Flame
When enabled, Flame Ramp is evaluated at the refitted flame value (from
Flame Range to 0-1
) to generate the output.
Flame Ramp
Ramp that controls outputs at different flame
field values.
Expansion ¶
Add Expansion
When enabled, goal divergence is added to the simulation in the specified Flame Range, causing expansion.
Expansion Rate
Amount of divergence from the flame
field. Larger values result in a more
violent expansion. Negative values cause the gas to be sucked inwards
(instead of blown outwards).
Flame Range
The range of values in the flame
field that will generate an output. The
flame
field is first fitted from this range to 0-1
; if Remap Flame
is enabled, the Flame Ramp is then evaluated at this value. The final
output is the product of this remapped flame
value and
Expansion Rate.
Remap Flame
When enabled, Flame Ramp is evaluated at the refitted flame value (from
Flame Range to 0-1
) to generate the output.
Flame Ramp
Ramp that controls outputs at different flame
field values.
Shape ¶
The shape of the resultant smoke can be greatly changed by tweaking the settings that are located in this section. Depending on values of these parameters, simulation results may fall anywhere between simple laminar smoke flow to small fires to huge explosions.
Dissipation reduces the density of smoke over time, so that it fades and eventually disappears. It is important to set an appropriate value for the Clamp Below parameter when performing a sparse simulation. Otherwise, tiny density values will linger and unnecessarily inflate the active simulation region.
Disturbance and shredding apply random forces to break up the simulation. Former exerts linear accelerations and is useful for breaking up smooth smoke caps. The latter rotates velocities to redirect the flow. Shredding is effective at adding chaotic motion without speeding up or slowing down the flow; it is especially useful for fire simulations, which are dominated by vertical licks when no shredding is used.
Turbulence can be used to add powerful large-scale noise to the simulation velocities.
Wind simulates a passive wind force that can be used to blow the smoke in a desired direction. This force is treated separately by advection, so the simulation velocity field will not reflect the precense of this wind.
Each shaping operation has a checkbox to turn it on and a scaling factor to
specify how strongly to apply it. There is also a tab containing further
parameters for each built-in operator. A common theme here is the control
field, which can be used to spatially attenuate strength of the shaping
operator. When enabled, value of the Control Field is fitted from the
Control Range to 0-1
; this is further passed through the
Control Ramp if Remap Control Field is enabled. The remapped control
value is then applied as a scaling factor on top of the global strength.
Dissipation
Causes smoke to disappear over time. Low values cause smoke to disappear
more slowly. A value of 0.1
, for example, means that 10%
of the
smoke will disappear every twenty-fourth of a second, whereas a value of
1
will make all smoke disappear immediately.
See the Dissipation tab below.
Disturbance
Introduces random forces to the simulation to add higher frequency details without changing the general motion or the overall shape. This operator is useful for breaking up undesirable smooth features in the smoke.
See the Disturbance tab below.
Shredding
Randomly redirects the flow without speeding it up or slowing it down. This operator is especially useful for flame simulations, where it can be used to emulate random motion of licks characteristic to fire.
See the Shredding tab below.
Turbulence
Adds “churning” noise to the velocity field. You should generally use this operator to add powerful large-scale noise, and rely on disturbance and shredding for smaller features.
See the Turbulence tab below.
Wind
Adds a passive wind to the simulation. This force is treated separately by advection, so the simulation velocity field will not reflect the presence of this wind.
See the Wind tab below.
Dissipation ¶
Clamp Below
When this option is turned on, density values that fall below the
provided threshold are driven all the way down to 0
. It is recommended
to leave this enabled for sparse simulations, for otherwise tiny density
values will keep the active region unnecessarily large.
Control Settings ¶
Control Field
When enabled, the force exerted is scaled by the content of this field.
Control Range
Map from this range of values in the control field.
Remap Control Field
Enables or disables the control field ramp.
Control Field Ramp
The ramp’s vertical axis is strength of the effect and the horizontal axis is the value in the control field.
Disturbance ¶
Threshold Field
Disturbance is meant to mimic random motion in the air surrounding the smoke. To this end, it is applied only where the value of the Threshold Field falls below Cutoff.
Cutoff
Disturbance is applied only where value of the Threshold Field falls below this Cutoff.
Mode
Controls the nature of the generated random vectors.
Continuous
Every voxel gets an independently-assigned random vector.
Block-Based
The random pattern is formed by composing several layers of blockwise-constant noise.
Reference Scale
Variance of the aggregated force over a region of this size will be equal to Disturbance amount when Mode is set to Continuous. Provides a scale for normalizing the force against voxel size. A larger value for this parameter will increase magnitude of the applied force.
Tip
You should set this parameter to a reasonable value for your scene scale and leave it there. The global Disturbance amount can be used to more finely control how much force is applied.
Base Block Size
Controls size of the biggest blocks in the generated noise pattern when Mode is set to Block-Based.
Pulse Length
Length of time (in seconds) that the noise pattern is held fixed; only applies when Mode is set to Block-Based.
Note
The noise pattern changes on every frame in Continuous mode.
Lacunarity
The ratio of block sizes between successive noise layers. Value of 2
, for
example, means that the first layer has blocks that are twice the size of
the second layer; the second layer will in turn have blocks that are twice
as large as the next layer. This parameter is only applicable in
Block-Based mode.
Roughness
The ratio of amplitudes between successive noise layers. Value of 0.5
, for
instance, means that the second layer will have half the amplitude of the
first one. This parameter is only applicable in Block-Based mode.
Tip
Lower Roughness values will better preserve the block structure in
the generated noise, whereas higher ones (nearing or exceeding 1
) will
yield more chaotic patterns resembling white noise.
Max Octaves
The maximum number of noise levels to compose in Block-Based mode.
Control Settings ¶
Control Field
When enabled, the force exerted is scaled by the content of this field.
Control Range
Map from this range of values in the control field.
Remap Control Field
Enables or disables the control field ramp.
Control Field Ramp
The ramp’s vertical axis is strength of the effect and the horizontal axis is the value in the control field.
Visualization ¶
Visualize Strength
This option can be enabled to visualize strength of the applied force at different points in space.
Note
The strengths will also be saved into the Visualization Field.
Visualization Field
When Visualize Strength is enabled, the amount of applied force at each voxel is stored in this scalar field.
Mode
Determines how the visualization will appear in the viewport.
Plane
Viewport will show a color-coded cutout of the strength field.
Smoke
Viewport will show a fog volume whose denser areas correspond to regions of higher applied strength.
Plane Orientation
Orientation of the cutting plane for Plane visualization.
Plane Position
Relative position of the cutting plane inside the bounding box.
Color Mapping
Controls how strength values are mapped from the Guide Range to colors.
Guide Range
Range of strength values that gets mapped into the 0-1
range before color
conversion. The final visualization colors are controlled by
Color Mapping.
Smoke Density
Multiplier on density of the fog volume representing force strength.
Shredding ¶
Shredding Field
Shredding is meant to add chaotic motion inside the fire. To this end,
value of the Shredding Field (flame
by default) is fitted from the
Field Range to 0-1
to act as a multiplier on top of the global
Shredding amount.
Field Range
Shredding Field value is fitted from this range to 0-1
to act as a
multiplier on top of the global Shredding amount.
Base Block Size
Controls size of the biggest blocks in the generated noise pattern when Mode is set to Block-Based.
Pulse Length
Length of time (in seconds) that the noise pattern is held fixed; only applies when Mode is set to Block-Based.
Note
The noise pattern changes on every frame in Continuous mode.
Lacunarity
The ratio of block sizes between successive noise layers. Value of 2
, for
example, means that the first layer has blocks that are twice the size of
the second layer; the second layer will in turn have blocks that are twice
as large as the next layer. This parameter is only applicable in
Block-Based mode.
Roughness
The ratio of amplitudes between successive noise layers. Value of 0.5
, for
instance, means that the second layer will have half the amplitude of the
first one. This parameter is only applicable in Block-Based mode.
Tip
Lower Roughness values will better preserve the block structure in
the generated noise, whereas higher ones (nearing or exceeding 1
) will
yield more chaotic patterns resembling white noise.
Max Octaves
The maximum number of noise levels to compose in Block-Based mode.
Control Settings ¶
Control Field
When enabled, the force exerted is scaled by the content of this field.
Control Range
Map from this range of values in the control field.
Remap Control Field
Enables or disables the control field ramp.
Control Field Ramp
The ramp’s vertical axis is strength of the effect and the horizontal axis is the value in the control field.
Visualization ¶
Visualize Strength
This option can be enabled to visualize strength of the applied force at different points in space.
Note
The strengths will also be saved into the Visualization Field.
Visualization Field
When Visualize Strength is enabled, the amount of applied force at each voxel is stored in this scalar field.
Mode
Determines how the visualization will appear in the viewport.
Plane
Viewport will show a color-coded cutout of the strength field.
Smoke
Viewport will show a fog volume whose denser areas correspond to regions of higher applied strength.
Plane Orientation
Orientation of the cutting plane for Plane visualization.
Plane Position
Relative position of the cutting plane inside the bounding box.
Color Mapping
Controls how strength values are mapped from the Guide Range to colors.
Guide Range
Range of strength values that gets mapped into the 0-1
range before color
conversion. The final visualization colors are controlled by
Color Mapping.
Smoke Density
Multiplier on density of the fog volume representing force strength.
Turbulence ¶
Swirl Size
Base swirl size in world units. Lower values produce smaller, more localized vortices, while larger values give rise to coherent long-range forces.
Grain
Controls the ratio of amplitudes between successive noise bands. Higher values increase the prevalence of higher-frequency vortices (smaller than the base Swirl Size).
Pulse Length
Governs how fast the noise evolves. Higher values of this parameter result in slower evolution.
Seed
Acts as an offset into the noise field. Change this value to modify the resultant forces.
Levels
Number of turbulence levels to apply. Each successive layer has half the swirl size, and amplitude of the previous layer scaled by Grain.
Influence Field
This field determines which areas are affected by turbulence. In particular, turbulence is applied wherever value of this field exceeds Influence Threshold.
Influence Threshold
Turbulence is applied wherever value of the Influence Field exceeds this threshold.
Control Settings ¶
Control Field
When enabled, the force exerted is scaled by the content of this field.
Control Range
Map from this range of values in the control field.
Remap Control Field
Enables or disables the control field ramp.
Control Field Ramp
The ramp’s vertical axis is strength of the effect and the horizontal axis is the value in the control field.
Visualization ¶
Visualize Turbulence
This option can be enabled to visualize the applied turbulence force.
Plane Orientation
Orientation of the cutting plane for visualization.
Visualization Type
The method for coloring the force streamers. See Vector Field Visualization help for more information on these types.
Visualization Mode
Determines how values in the Visualization Range are converted to colors.
Visualization Scale
Magnitude of the force is multiplied by this value to calculate the actual speed to use when the Visualization Mode is set to Speed.
Note
The magnitude is scaled by this value before mapping from the Visualization Range.
Plane Position
Relative position of the cutting plane inside the bounding box.
Streamer Length
Distance in world space that each streamer will travel.
Note
Streamer lengths are not indicative of force magnitude.
Streamer Minimum Speed
The cut-off force magnitude at which the streamers will be abandoned.
Visualization Range
When Visualization Mode is set to Speed, the scaled force
magnitude is fitted from this range to 0-1
before being mapped to
color (per Visualization Mode).
Wind ¶
Wind Direction
Which direction the wind is blowing in. The actual wind velocity is the product of Wind Direction and Wind strength.
Color ¶
The solver is capable of managing the smoke object’s color data. To this
end, it takes care of two fields: Cd
, which stores the color value that
can be used as the Diffuse Field for visualization, and Alpha
, which
contains the amount of color at each point in space. The Alpha
field is
important for determining how colors should be mixed. For example, if white
and black smoke mix, the resultant gray will be lighter if the white
component has a higher Alpha
value. The clip below provides a visual
comparison: yellow smoke in the right clip is sourced with a larger value of
Alpha
.
Dissipation
Causes the amount of color to reduce over time. By default, only the
Alpha
channel is dissipated; this does not directly affect smoke’s
color, but makes it easier to mix in new color via sourcing. When
Only Dissipate Alpha is disabled (under the Dissipation subtab),
Cd
values will also decay toward the smoke’s Default Color (as set
on the Smoke Object (Sparse) node).
Blur
Blurs the smoke’s color field by mixing its values in neighborhoods of the given size.
Sharpening
Sharpens the smoke’s color field, effectively discouraging mixing of different colors.
Note
Large values of the sharpening parameter may introduce visible artifacts. In some cases, the added noise can be reduced by increasing the sharpening Threshold.
Dissipation ¶
When dissipation is enabled, the amount of color in the smoke reduces over time, making it easier to source new color. If Only Dissipate Alpha is turned off, then the smoke’s color will also dissipate toward the smoke’s default color.
Only Dissipate Alpha
When this option is enabled, only the Alpha
values are affected by
dissipation: this makes it easier to color “older” smoke through
sourcing. Disabling this parameter will cause dissipation to also drive
Cd
values toward the smoke’s default color. That is, when
Only Dissipate Alpha is turned off, the smoke will gradually change
its color back to the default value.
Control Field
When enabled, the force exerted is scaled by the content of this field.
Control Range
Map from this range of values in the control field.
Remap Control Field
Enables or disables the control field ramp.
Control Field Ramp
The ramp’s vertical axis is strength of the effect and the horizontal axis is the value in the control field.
Blur ¶
Blur encourages mixing of smoke colors.
Radius
Controls how far out the colors will blur per second.
Filter
Shape of the blur kernel.
Sharpening ¶
Advanced ¶
Minimal Solve
Turns off certain parts of the evaluation network to facilitate fast OpenCL solving that avoids data copying between main and video memory.
Warning
This is a utility parameter used by the Pyro Solver SOP to implement Minimal OpenCL Solve; however, that feature relies on several moving parts to work correctly. As such, you should not unlock or change value of this parameter on the Smoke Solver (Sparse) or Pyro Solver (Sparse) operators.
Use OpenCL
Use the OpenCL device to accelerate computations.
Note
OpenCL acceleration is currently only supported in dense mode (when Enable Sparse Solving is disabled).
Min Substeps
The solver will take at least this many substeps per frame. If you have unusual forces, you may want to increase this parameter for better stability. Increasing this parameter usually makes the simulation run noticeably slower.
Max Substeps
The solver will take at most this many substeps per frame.
CFL Condition
When Max Substeps is greater than 1, the solver uses this parameter to determine the number of substeps. The condition is that no substep can allow objects to interpenetrate by more than this many voxels. Higher values let the solver take larger substeps, possibly letting smoke pass through colliders.
Quantize to Max Substeps
When enabled, all substeps will divide the frame by Max Substeps. For example, if Max Substeps is set to 4, but the CFL Condition only requires 3 substeps, the solver will take frame steps 0.25, 0.5, and 0.25. This option can be useful for re-using input geometry that has been cached to file at increments of 1/Max Substeps.
Frames Before Solve
Delays the actual simulation this many frames after the object creation. Nodes attached to the Sourcing input will still be executed. This may be needed if some solve nodes can’t be processed before certain initial conditions have been met.
Single V-Cycle for Pressure Projection
When enabled, pressure projection will be done using a much cheaper (but less accurate) method.
Resizing ¶
Resize in Full Tiles
When enabled, size changes to the fields will be done in increments of 16 voxels. This is marginally more efficient, but the resultant fields will be larger than necessary.
Note
Resizing is always done in full tiles when Enable Sparse Solving is turned on.
Reference Fields
List of fields that determine size of the simulation container. Resizing is done by first computing the bounding box around all voxels of Reference Fields that have a positive value, then expanding this intermediate region by Padding on all sides. This list of fields is also used to build the active region in sparse mode.
Padding
Amount of padding to add to the simulation region around the Reference Fields. Padding should be as small as possible, but large enough to ensure that moving smoke does not leave the container within a timestep.
Note
When Enable Sparse Solving is turned on, Padding also controls size of the buffer built into the active region.
Extra Fields
By default, the smoke solver will resize density
, temperature
,
divergence
, active
, vel
, collisionvel
, and flame
(for pyro
only). Additional fields may be resized by specifying them here.
Sparsity ¶
Enable Sparse Solving
Puts the solver in sparse mode, allowing it to perform its computations only in relevant areas.
Note
Enable Sparse Solving must also be enabled on the smoke object for sparse mode to work correctly.
Reset Rule
Rule that determines where the fields specified in Fields to Reset are modified.
Disabled
Fields are not modified anywhere.
Newly Occupied
Fields are reset in the areas that were previously inactive but are now active.
Newly Deoccupied
Fields are reset in the areas that were previously active but are now inactive.
Newly Occupied or Deoccupied
Fields are reset in the areas that changed their activity status in either direction.
Fields to Reset
List of fields to reset, based on the Reset Rule. In the regions where they are modified, these fields are set to their initial value.
Extrapolate Velocity into New Tiles
When this parameter is enabled, newly-activated areas inherit their velocities from nearby active regions. This can help reduce tile artifacts that may appear on the smoke surface if the Padding is not large enough.
Falloff and Blendwidth parameters determine how new velocities are blended with the background field value (as set by Wind Tunnel Direction on the Smoke Object (Sparse) node). You should set Blendwidth to reflect the interpolation band around the active region: valid boundary velocities will be blended with the background value in a band of this thickness. If the Blendwidth is set too small, then extrapolation will not be effective at removing tile artifacts; however, if this value is set too large, then smoke will be accelerated outwards. If this happens, decreasing the Blendwidth or increasing Falloff (to a value on the order of simulation speeds) can help mitigate the problem.
Falloff
When Extrapolate Velocity into New Tiles is enabled, valid velocity values are extrapolated into newly-activated nearby tiles. This parameter sets a minimum blending rate towards the background field value (as set by the Wind Tunnel Direction on the Smoke Object (Sparse) node). Increase this parameter if the smoke gets pulled outwards at the desired Blendwidth.
Blendwidth
Controls the size of the interpolation band around the active region when Extrapolate Velocity into New Active Tiles is enabled. Newly-activated velocities in a band of this size will interpolate valid values towards the background value (as set by Wind Tunnel Direction). Increasing this parameter can help reduce tile artifacts that can appear when Padding is small.
Note
The actual blendwidth is equal to the product of this parameter and Padding. Thus, if you change Padding by a significant amount, you may need to adjust the value of this parameter as well.
Expand by Velocity
When enabled, the active simulation region will take the motion of the gas into account. This will result in adaptive padding that is larger where the fluid is exiting at a faster rate. If this is disabled, the active region is expanded uniformly in all directions.
Min Padding
The minimum padding around the smoke when Expand by Velocity is turned on.
Max Padding
The maximum padding around the smoke when Expand by Velocity is turned on. You can enable this to limit the amount of internal expansion when using Expand by Velocity.
Note
If Max Padding is less than resizing Padding, then Padding will be internally clamped to Max Padding (when enabled). This is done to avoid having layers of inactive tiles at the boundaries.
Expansion Rate
Controls size of the adaptive padding for the sparse active region, when Expand by Velocity is enabled. The active region will include more tiles (and the smoke will have a bugger buffer to move into) when this parameter is set to a larger value.
Tangential Rate
This parameter impacts the shape of the sparse active region when using Expand by Velocity. Smaller values of this parameter will permit sharper kinks in the active region. This can reduce the number of active simulation tiles, but may also negatively impact the motion of the fluid.
External Forces ¶
Scaled Forces
A list of forces to scale by the value of the density
field at each voxel.
Absolute Forces
A list of forces to apply uniformly to all voxels (ignoring their density
value).
Advection ¶
Field Advection ¶
Advection Scheme
The algorithm used to perform advection. Semi-Lagrangian is the most basic: it simply traces trajectories through the Velocity Field once to update the Field values. Modified MacCormack carries out an extra tracing step to approximate and compensate for the introduced error; as a result, sharp features of the original field can be better preserved. BFECC performs yet another trace to predict the motion of the estimated error, producing the best results at the highest computational cost.
Clamp Values
The error correction steps of Modified MacCormack and BFECC advection may introduce final voxel values that lie outside the range of the original field: this can create negative densities or large velocities, for example. When such values are detected, the final field value depends on the setting of this parameter.
None
No clamping is performed.
Clamp
Clamps the value to ensure it lies in the range that would have been seen by Semi-Lagrangian advection.
Revert
Falls back to the value predicted by Semi-Lagrangian advection.
Blend
Apply a smooth blend between non-clamped and clamped values as the advected field approaches the clamping limit. Particularly with the Revert option, applying a small amount of Blend (0.05-0.1) can reduce grid artifacts in the advected field.
Trace Method
Controls how trajectories are traced through the velocity field. Options in this menu are listed in the order of increasing accuracy and computational cost.
Note
With an appropriate value for the CFL Condition, Forward Euler should be sufficient. Consider using a higher-order Trace Method if you need to use a larger CFL Condition or if you choose to disable that option altogether.
CFL Condition
When enabled, trajectory tracing will be done in steps to ensure that the calculated path reflects variations in the velocity field. The step size is governed by the value of this parameter. Particularly, the number of field voxels traveled in each step is equal to the CFL Condition.
Max Steps
Provides a safety limit on the number of steps that can be taken to trace trajectories.
Note
Step limiting will also always apply to velocity advection, even when Use Field Advection Settings for Velocity is disabled.
Max Batch Size
To minimize the cost of tracing paths through the Velocity Field, the target fields are organized into batches (based on their voxel sampling settings), and each batch is advected simultaneously. Enabling this option allows you to limit the number of fields that can be processed in each batch. This is useful for reducing peak memory usage of the advection step.
Note
The batch settings will also always apply to velocity advection, even when Use Field Advection Settings for Velocity is disabled.
Extra Fields
By default, the solver will advect density
, temperature
, vel
, and
flame
(for pyro only). Additional fields may be advected by specifying
them here.
Velocity Advection ¶
Use Field Advection Settings for Velocity
When enabled, Field Advection settings will also be used to advect the velocity field. Turning this option off allows you to change advection settings for velocity.
The remaining settings in this section are the same as the ones listed under Field Advection.
Collisions ¶
Build Collision Mask
If this option is enabled, the solver will build the collision
and
collisionvel
fields, allowing automatic interaction between smoke and
collision objects.
Bandwidth
Controls how far from the collision objects the relevant fields are to be built. This value is measured in voxels. If disabled, the fields will be initialized everywhere.
Use Point Velocity for Collisions
The local velocity of an affector object is a combination of the angular and linear velocity. However, if the object is deforming and points match frame to frame, the local point velocity can be used as well to estimate the deformation effect.
Use Volume Velocity for Collisions
If an affector object doesn’t have a stable point count, but does have a volume representation, the change in the volume representation can be used as an estimate of deformation velocity.
Note
This does not include any velocity tangential to the volume surface: a conveyor belt will appear to be stationary as the volume remains unchanged frame to frame.
Collide with Non-SDF
Normally, the collision relationship uses the signed distance field for each
object. However, if the object is a different type you can use other ways of
getting its effective signed distance field. If this option is enabled, the
object is examined for a surface
scalarfield, which is treated as a signed
distance field. If a density
field is present, it is treated as a fog
volume with a 0.5 cutoff. If a Geometry
geometry is attached, and it
consists of a single volume, that volume will be treated as a fog volume
(with cutoff of 0.5). However, if its boundary condition is set to SDF, it
will be treated as an SDF.
Correct Collisions
When enabled, the specified fields will be reset inside the colliders.
Fields to Correct
These fields will be reset inside the colliders when Correct Collisions is turned on.
Feedback Scale
The degree to which the colliders are affected by smoke is controlled by the value of this parameter. Higher values will increase the effect of pressure forces on the colliders. A value of 0 will prevent any feedback.
IOP Iterations
Colliders are integrated into the system using a weak coupling approach. The number of projection iterations is controlled by this parameter. Larger values will slow down the simulation, but yield better interaction with collision objects.
Note
IOP stands for Iterated Orthogonal Projections. This method works by first making the velocity field compatible with colliders (while ignoring the prescribed divergence), then matching the desired divergence (without considering collision objects). If these steps are repeated enough times, the resulting velocity field will have the desired divergence and respect the colliders.
Hourglass Filtering ¶
Filter Hourglass Modes
Enables filtering of spurious divergent modes that may survive pressure projection when Velocity Sampling on the smoke object is set to Center.
Amount
Strength of hourglass filtering. Value of 0
disables the filtering
altogether, while 1
performs full filtering.
Scale by Divergence
Instead of performing the filtering everywhere, it can be selectively applied to voxels where divergence is still detected by turning this option on.
Use Relative Divergence
Similar to Scale by Divergence, this setting applies the filtering with different strength in different places. Instead of pure divergence, however, the quantity used to control filtering strength is the ratio of divergence to speed.
Divergence Scale
Controls how sensitive filter strength is to the remaining divergence (or divergence relative to speed if Use Relative Divergence is enabled). That is, the relevant quantity is multiplied by this amount before it is used to determine filter strength.
Visualize Filter Strength
When using an adaptive filter (Scale by Divergence turned on), the strength field can be visualized by enabling this option.
Plane Orientation
Orientation of the cutting plane for visualization.
Plane Position
Relative position of the cutting plane inside the bounding box.
Visualization Mode
Determines how strength values (which fall between 0
and 1
) are
converted to colors.
See also |