Share

source_particles

Allows the user to emit particles into a simulate_particles compound.

To use this node, connect a geometry object into the geometry input, then plug source_particles.particle_source output into the sources input of a simulate_particles compound.

Inputs

geometry

An array of input meshes, points and volumes that define the source geometry.

General

Overall properties for time bounds and disabling of the source.

enable

Whether this source should be used. When not checked this source will be ignored, and will not produce particles.

start_frame

Is 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

Is the frame at which emission from the source stops.

Creation Options

These controls affect the act of emission from the geometry source.

passthrough_points

Turn on this option to use the point_position of the input geometry as the initial point_position for the particles. The other Creation Options are ignored in this case.

passthrough_properties

When passthrough_points is on, these additional properties will be copied to the particles every frame, and interpolated to substeps when the type supports it. If multiple source_particles are being used then all their passthrough_properties will be merged, with default values used for missing properties.

distribution

This controls how particles are distributed on the geometry:

  • Surface: Emit from the surface of the input geometry
  • Volume: Emit from the inside of the input geometry. This requires the geometry be voxelized, which uses the volume_detail_size property to determine how finely to voxelize relative to the bounding box. One can also set the geo_volume_mode and geo_volume_offset for this voxelization by making this compound editable and going into it.

Geometry Volume Conversion

volume_resolution_mode

How the voxel size is determined for mesh emitters.

  • Absolute: The size of an emitter voxel is the volume_detail_size value in world-space units.
  • Relative: The volume_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 specified volume_detail_size value in Relative mode. For sources, the bounds of the source mesh at the start frame are used to determine the volume_detail_size for the full animation, even if the source size is animated.

volume_detail_size

This is the voxel size to use when voxelizing the geometry for the Volume distribution method.

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.

geo_volume_offset

The amount to offset the voxelized volume when emitting from meshes or points in world units. Positive values expand the volume and negative values shrink it.

rate

This controls how many particles will be emitted each step, based on the rate_mode.

rate_mode

This controls how rate is defined:

  • Density: The number of particles per frame is based on the worldspace unit area for surface distribution, and unit volume for volume distribution. In general when changing the rate mode to density it is a good idea to lower the rate first, as a very large object may have a very large aero or volume, which could result in a huge particle count.
  • Count: The rate will represent the average number of particles to emit every frame.
  • Count Per Point: Particles will be emitted from vertices, not surfaces or volumes. The rate is the number of particles to emit from each vertex every frame. If switching to this one may wish to first lower the rate if a mesh has a lot of vertices, as the resulting particle count could be large.

Particle Properties

These controls affect the initial value of per particle properties at emit time.

speed

This is the initial speed of the particles. This value affects both the normal_speed as well as the direction vector. The general speed is in units per second.

direction

This is the component of the emission speed along a fixed direction in worldspace.

normal_speed

This is the component of the the emission speed along the geometry normal. If the geometry does not have a point_normal then this will emit in all directions.

spread

This affects the direction of emission. A value of 0 will be along the defined direction or normal. A value of 0.5 will randomly perturb this direction to a spread of 180 degrees. A value of 1.0 will result in a fully random emission direction.

inherit_velocity

This is the degree to which the emission velocity has the velocity of the source geometry added to it. At a value of 1.0 the emitter will add the full object velocity to the particle.

bounciness

This is the resilience of the particle for collisions, and determines how much particles bounce. If both the collider and the particles have bounciness values of 1.0 it will result in perfectly resilient collisions where particles will continue to bounce to the same height, providing there is no drag. Values greater than 1.0 would result in collisions that are not physicially possible.

live_forever

If this is enabled then the age_limit is ignored and particles do not die, unless killed with an influence_field.

age_limit

The age of particles in seconds beyond which they are killed.

size

The initial value to set for the particle point_size, which is used for collisions as well as drawing.

additional_properties

One can add additional per particle properties using this object port. Any simple property on the object passed in will become an array geo property on the particle system. The value on the passed in object will be the value the particles get on emission. For example one could create a set_property node, set the key to color, set the value to a float3, then plug it into additional_properties. The particles will have a color property.

Outputs

particle_source

The output is an object that contains an aggregation of source related inputs to the particle solver and should be connected to the sources port on a simulate_particles node.

Was this information helpful?