Birth Fluid operator

The Birth Fluid operator can be used to birth particles inside of a (Phoenix FD) fluid grid based on grid voxel and particle properties.


Birth Fluid Rollout

  • Fluid object: the input fluid grid object.

  • Start/End: controls the time range in which to birth new particles.

Uniqueness

  • Seed: the seed value for all varied parameters.

Grid Cells Rollout

Input grid channels

  • Temperature: when enabled, grid cells with a temperature value above 300 will be able to spawn particles.

  • Smoke: when enabled, grid cells with a smoke value above 0 will be able to spawn particles.

  • Velocity: when enabled, grid cells with a velocity value above 0 will be able to spawn particles.

  • Fire: when enabled, grid cells with a fire value above 0 will be able to spawn particles (FumeFX only).

The higher the temperature/smoke value per cell, the higher the probability that a particle will be spawned in the cell.

  • Rate per grid: The theoretical rate of particles births that can happen per simulation step over the entire grid, given a per-cell probability of 1. The actual rate of particle births will be lower, and the birth probability per-cell is dependent on the total smoke and temperature values of each cell.

  • Rate per cell: Same as rate per grid, but the probability is calculated per cell instead of per grid.

“Rate per grid” and “rate per cell” are easy to understand once you grasp what they are doing. “Rate per grid” means that if every single cell of a grid is completely full of smoke/velocity/etc (depending on the input grid channels you’ve selected), then the probability of each cell getting a particle is the rate divided by the cell count: [rate per grid / total cells]. So, if a grid has 1000 cells and “rate per grid” is set to 1000, each cell will generate exactly 1 particle if each cell is completely full of smoke/velocity/etc. The “rate per cell” setting is similar, except the probability of a full cell getting a particle is identical to the “rate per cell” value (ie, it’s not divided by the total number of cells). In practice, a grid will have lots of empty cells, or lots of semi-filled cells, so the total number of particles will be lower than the explicit “rate per grid/cell” settings (hence why the rate values are probabilitistic and don’t define an exact number of particles that will be generated).

Thresholds

Enabling these channels will override the default cell spawn probabilities.

  • Temperature/Smoke/Velocity/Fire: the threshold override channels.

  • Min/Max/Variation: the range of values for each selected channel that will control how many particles are spawned in each cell.


Grid Particles Rollout

Input Particle Channels

PhoenixFD grids can contain both voxels and particles. To birth particles that will be copies of PhoenixFD grid particles, enable the relevant particle channels.

  • Channels: enabling these channels will birth copies of particles contained within them, if such particles are available in the cache of the input object.

  • Channel percentages: controls the percentage of copied input particles to birth.

  • New only: controls whether only new particles will be birthed each frame. A particle is considered new if its input ID has not been processed on a previous frame.


Spray/Foam/Bubbles Rollout

  • Generate spray, foam and bubbles: when enabled, the input grid will be analyzed for areas where air could become trapped in the fluid, and generate spray/foam/bubbles accordingly.

The difference between spray, foam and bubbles is that spray particles are outside of fluid-containing cells, foam particles are in fluid-containing cells that are on the surface of the fluid (cells that border non-fluid cells), and bubbles particles are in fluid-containing cells that are fully submerged (cells that do not border non-fluid cells).

Splash detection

Splashes are detected by finding areas where the relative velocities between particles is high (particles moving towards each other).

  • Enable splash detection: when enabled, particles will be generated in areas where splashes are detected.

  • Velocity thresh min/max: the minimum and maximum relative velocities used to determine how many particles to generate in a splash. Higher minimum values mean fluid particles must have a higher relative velocity in order to be considered a splash. Lower maximum values mean more particles will be generated in splashes with a smaller relative velocity magnitude.

Wavecrest detection

Wavecrests are detected by finding areas where the curvature of the fluid surface is high, and the fluid is moving in the direction of the nearest surface normal.

  • Enable wavecrest detection: when enabled, particles will be generated in areas where wavecrests are detected.

  • Forward vel thresh: controls how close the direction the wavecrest must be moving, relative to the nearest surface normal, in order to qualify for particle generation. Higher values mean the direction of the wavecrest’s motion must be closer to the nearest surface normal in order to generate wavecrest particles.

  • Curvature min/max: controls how much local surface curvature a wavecrest must have in order to qualify for particle generation.

Velocity thresholds

Areas of the fluid in which splashes or wavecrests are detected must also meet the velocity threshold criteria in order to qualify for particle generation.

  • Velocity min/max: the threshold values used to determine how particles are generated on a splash or wavecrest. Lower minimum values reduce the minimum velocity criteria for particle generation. Lower maximum values increase the likelihood that a splash or wavecrest will generate the maximum number of spawned particles.

Neighbor thresholds

The density of fluid particles (the number of immediate neighbors a fluid particle has) must meet the neighbor threshold criteria in order to qualify for particle generation.

  • Neighbor min/max: the threshold values used to determine how particles are generated based on the number of neighbors they have. Lower minimum values means a particle with less neighbors can still spawn particles. Lower maximum values means a particle with less neighbors will generate the maximum number of spawned particles.

Spawned particles

Scale
  • Scale min/max: the min/max scale of spawned particles, relative to the combined probability of prior wave/splash/velocity thresholds.
Velocity
  • Velocity multiplier: multiplies spawned particle velocities by the specified amount.

  • Variation %: the per-particle percentage of variation to apply.
Count
  • Count min/max: the min/max amount of new particles a fluid particle may generate, relative to the combined probability of prior wave/splash/velocity thresholds.

With the scale and count thresholds, you can define how slower fluid particles in splash areas with low relative velocity or low curvature generate particles, compared to faster fluid particles in splash areas with high relative velocity or high curvature.

  • Variation %: the per-particle percentage of variation to apply.
  • Per-step limit: the maximum amount of particles that the operator may generate for a given time step.

Cache

  • Cache fluid surface analysis: when enabled, the surface analysis of the input grid will be cached to RAM on a per-frame basis.

The fluid surface analysis cache can greatly speed up resimulations after the first fluid analysis is complete (in other words, after each frame of the fluid simulation has been processed by the Birth Fluid operator at least once). RAM usage for the surface analysis of a high resolution fluid sim is usually fairly small, so the benefits of keeping the cache enabled (resimulation speed) outweighs the cons (extra RAM usage). This setting may need to be disabled for extremely high resolution fluid simulations over very large frame ranges.