|On this page|
Stream emission vs. POP emission
The Use stream emission option lets you set and initial velocity for the emitted particles, and calculates the emission rate from that based on the desired particle separation in the particle fluid object, as in the Velocity Stream POP. This option only emits particles from the points of the source geometry.
Turning Use stream emission off gives you a more complex but flexible set of parameters to control particle emission, identical to the options on the Source POP. You can use the Emission type parameter to emit randomly from the surface of the source geometry instead of from the points (as well as many other options).
Using Emit Particle Fluid
Create a geometry object in the shape you want to emit fluid.
In the Particle Fluids shelf tab, click the Emit Particle Fluid tool.
Select the geometry object to emit the fluid, then press Enter.
If you have an existing particle fluid object you want to add the new emitter to, select it and press Enter.
Otherwise, just press Enter and the tool will create a new particle fluid object for you.
Particle Fluid Object
The Particle Fluid Object node for the simulation to be affected.
The Particle Fluid Emitter uses this node
Use Stream Emission
Enable this toggle to use stream-based emission of particles rather than constant or impulse emission. Stream-based emission controls the timing of particle emissions to maintain a specified particle separation in the outgoing particle stream.
This can be useful for creating a smooth,
If stream emission is set, a special detail attribute is set to record the last emission time. If you want to re-use a particle simulation with a different start time, you may have to first delete this detail attribute with an Attribute SOP.
Where on source geometry to emit particles from.
Emit particles from each point in the source geometry, in order. Primitives (for example, primitive sphere) have only one point from which to emit particles.
Same as "Points (ordered)", but emits particles from points in random order. This order does not change over time: the same randomized sequence repeats over and over.
Prim center (ordered)
Birth particles from the center of each primitive in the source geometry, in order. This is useful when used in combination with the Rotate to Template parameter in the Primitive SOP.
Prim center (random)
Same as "Prim center (ordered)", but emits particles from primitive centers in random order. This order does not change over time: the same randomized sequence repeats over and over.
Prim center (attribute)
Use the attribute named in the Distribution attribute parameter below as the probability that a primitive will emit a particle.
Primitives where the attributes is less than or equal to 0 will not emit particles.
For primitives where the attributes is over 0, for each particle to be emit, the probability that a primitive will emit it is equal to that primitive’s attribute value divided by the sum of the attribute values of all the primitives.
You use the Measure SOP to create an attribute on primitives that records the surface area, then use that attribute here so primitives with greater surface area emit particles more often.
Emit particles from each spline/polygon edge in the source geometry, in order. The birth points are along continuous intervals on the curve, not just from CVs or points.
Same as "Edges (ordered)", but emits particles from edges in random order. This order does not change over time: the same randomized sequence repeats over and over.
See "Prim center (attribute)" above.
Emit particles from each UV spline surface or mesh type in the source geometry, in order. If there is no surface but only a spline curve, then emit particles from the curve. For polygons are used, only emits particles from the polygon edges.
Same as "Surfaces (ordered)", but emits particles from surfaces in random order. This order does not change over time: the same randomized sequence repeats over and over.
See "Prim center (attribute)" above.
Emit particles from inside the volume of the source geometry. The behavior is undefined if the source geometry is not closed.
Emit particles from inside the volume of a metaball, according to the Density Threshold and Density Minimum parameters below.
The Particle Fluid Emitter can either emit particles from a specified piece of emission geometry, or from pre-built elliptical or rectangular grids of particles. Use this menu to choose which type of emission geometry to use.
The name of the emission geometry to use, if Emission Geometry is set to Specify Emission Geometry.
Subset of all points/primitives in the source geometry to emit from.
Ignore Transform Object
Particles normally use the object space of emission geometry. Turn this parameter on to not transform in to the space of the emission geometry SOP.
When Emission type is "Prim center (attribute)", "Edges (attribute)", or "Surfaces (attribute)", the attribute to use as the probability of emitting a particle.
When Emission type is "Metaballs", continue sampling points until the summed density exceeds this threshold.
When Emission type is "Metaballs", points with densities less than or equal to this value will not emit particles.
Use Metaball Density
Use the metaball density function as the probability of emitting a particle, so denser areas emit particles more often.
This emitter creates fluid particles in three different ways; constant, impulse and stream emission. Constant emission emits a constant number of particles per second, regardless of the number of points in the emission geometry. Impulse emission emits a specified number of particles each time the emitter is cooked. Stream emission always emits a particle from each point in the emission geometry simultaneously. The timing of these emissions is determined by the outgoing particle velocity and a Stream Spacing attribute. Particles are emitted with the desired spacing between emissions. This can be useful for creating a smooth, uniform stream of fluid emitted from a surface.
Activates or deactivates impulse emission.
Impulse Birth Rate
The number of fluid particles to emit at each time step.
Activates or deactivates constant emission.
Constant Birth Rate
The number of fluid particles to emit per second.
Activates or deactivates stream emission.
Controls the spacing between particles in the emitted stream. This is done by regulating the times at which particles are emitted.
For example, if the velocity of emitted particles
This parameter does not affect the behavior of particles once they are emitted, but rather affects the timing and direction of particle emission. It is used to regulate the timing of particle emission in the presence of external forces accelerating the particles.
For example, if particles are emitted with no
Stream Velocity Scale
This parameter is a multiplier which controls the velocity used to determine the timing of particle emissions. It does not affect the actual velocity of emitted particles, but rather can be used to internally scale the emission velocity to thicken or thin out the emitted particle stream.
Setting this parameter to 2, for instance, causes the emitter to emit points twice as often.
Determines how long generated particles will live, in seconds, before they die of old age. A value of -1 will cause them to live forever.
When birthing particles at random, this seed determines what random sequence will be used.
By varying the seed on multiple runs through the particle simulation you can get variations on how the particles were created.
This tab is used to control the velocity of emitted fluid particles.
How to set the initial velocity of the emitted particles.
Use inherited velocity
Use the inherited velocity attribute as the initial velocity of the particles.
Add to inherited velocity
Add the inherited velocity attribute to the values from the Velocity and Variance parameters below.
Set initial velocity
Set the initial value of the velocity attribute using the Velocity and Variance parameters below.
Acceleration is inherited independently, if applicable.
(When Initial velocity is Use inherited velocity or Add to inherited velocity) The proportion of the inherited velocity to use. Use
1 for the full inherited value,
0.5 to half the inherited value, and so on.
Set or add to velocity attribute.
Variance to velocity set above. The node will add +/- from 0 to this number along each axis to the Velocity parameter.
By default, the variance (if any) is distributed in a box, the size of which is determined by the Variance parameter. When this option is on, the variance is distributed in an ellipsoid instead.
This tab is used to control the number of particles emitted by ensuring that particles are not created in areas where the fluid density is too high. This is available to prevent large spikes in pressure as fluid particles are created.
Density Test Activation
Activates or deactivates the density test.
This is a multiplier for the fluid rest density. If a particle is emitted in a location where the density exceeds this quantity multiplied by the fluid rest density, then the particle is immediately killed.
This section appears at the bottom of the parameter pane and contains parameters related to pre-built emission geometry in the Particle Fluid Emitter node. The emitter node provides pre-built geometry to emit particles in a grid pattern from a rectangular or elliptical surface.
The geometry automatically makes use of the Particle Separation parameter on the Particle Fluid Object specified in the Particle Fluid Object parameter to determine the necessary spacing between points in this pre-built geometry.
The two-dimensional size of the geometry.
The center point of the pre-built geometry.
How to orient the geometry in space. Align With Velocity
Aligns the emission geometry to be perpendicular with the emission velocity specified in the Velocity tab.
Aligns the emission geometry to be perpendicular with the direction vector specified in Direction Vector.
Allows the geometry to be freely rotated using the Rotation Order and Rotate parameters.
The direction to align the emission geometry with if Orientation Type is set to "Specify Direction".
Rotation About Axis
If Orientation Type is set to align the emitter with a velocity or direction vector, this parameter specifies the rotation of the geometry about that vector.
If Orientation Type is set to "Free Rotation", this controls the order in which rotations are applied.
If Orientation Type is set to "Free Rotation", this controls the rotation of the emission geometry about the x, y and z axes.
Controls the amount of random jitter to apply to points in the pre-built emission geometry.
The seed to use when applying random jitter to points in the pre-built emission geometry.
This value is the simulation time for which the node is being evaluated.
This value may not be equal to the current Houdini time represented by the variable T, depending on the settings of the DOP Network Offset Time and Time Scale parameters.
This value is guaranteed to have a value of zero at the
start of a simulation, so when testing for the first timestep of a
simulation, it is best to use a test like
$ST == 0 rather than
$T == 0 or
$FF == 1.
This value is the simulation frame (or more accurately, the simulation time step number) for which the node is being evaluated.
This value may not be equal to the current Houdini frame number represented by the variable F, depending on the settings of the DOP Network parameters. Instead, this value is equal to the simulation time (ST) divided by the simulation timestep size (TIMESTEP).
This value is the size of a simulation timestep. This value is useful to scale values that are expressed in units per second, but are applied on each timestep.
This value is the inverse of the TIMESTEP value. It is the number of timesteps per second of simulation time.
This is the number of objects in the simulation. For nodes that create objects such as the Empty Object node, this value will increase for each object that is evaluated.
A good way to guarantee unique object names is to use an expression
This value is the number of objects that will be evaluated by the current node during this timestep. This value will often be different from SNOBJ, as many nodes do not process all the objects in a simulation.
This value may return 0 if the node does not process each object sequentially (such as the Group DOP).
This value is the index of the specific object being processed by the node. This value will always run from zero to NOBJ-1 in a given timestep. This value does not identify the current object within the simulation like OBJID or OBJNAME, just the object’s position in the current order of processing.
This value is useful for generating a random number for each object, or simply splitting the objects into two or more groups to be processed in different ways. This value will be -1 if the node does not process objects sequentially (such as the Group DOP).
This is the unique object identifier for the object being processed. Every object is assigned an integer value that is unique among all objects in the simulation for all time. Even if an object is deleted, its identifier is never reused.
The object identifier can always be used to uniquely identify a given object. This makes this variable very useful in situations where each object needs to be treated differently. It can be used to produce a unique random number for each object, for example.
This value is also the best way to look up information on an object using the dopfield expression function. This value will be -1 if the node does not process objects sequentially (such as the Group DOP).
This string contains a space separated list of the unique object identifiers for every object being processed by the current node.
This string contains a space separated list of the names of every object being processed by the current node.
This value is the simulation time (see variable ST) at which the current object was created.
Therefore, to check if an object was created
on the current timestep, the expression
$ST == $OBJCT should
always be used. This value will be zero if the node does not process
objects sequentially (such as the Group DOP).
This value is the simulation frame (see variable SF) at which the current object was created.
This value is equivalent to using the dopsttoframe expression on the OBJCT variable. This value will be zero if the node does not process objects sequentially (such as the Group DOP).
This is a string value containing the name of the object being processed.
Object names are not guaranteed to be unique within a simulation. However, if you name your objects carefully so that they are unique, the object name can be a much easier way to identify an object than the unique object identifier, OBJID.
The object name can
also be used to treat a number of similar objects (with the same
name) as a virtual group. If there are 20 objects named "myobject",
strcmp($OBJNAME, "myobject") == 0 in the activation field
of a DOP will cause that DOP to operate only on those 20 objects. This
value will be the empty string if the node does not process objects
sequentially (such as the Group DOP).
This is a string value containing the full path of the current DOP Network. This value is most useful in DOP subnet digital assets where you want to know the path to the DOP Network that contains the node.
Most dynamics nodes have local variables with the same names as the node’s parameters. For example, in a Position node, you could write the expression:
$tx + 0.1
…to make the object move 0.1 units along the X axis at each timestep.