Position Object operator

The Position Object operator allows you to position particles on the surface or in the volume of a scene object’s geometry.


Objects

  • Object list: the list of scene objects on whose geometry particles will be scattered.

Motion

  • Simulate substeps: positions will be interpolated in a way that simulates the addition of positions at smaller simulation substeps.

  • Inherit emitter movement: controls whether particles will inherit velocities from the object on which they’re scattered.

  • Multiplier: the amount of influence an object’s velocity will have on particle velocities.

  • Variation %: the per-particle percentage of variation to apply.
  • Divergence: the angle of divergence applied to inherited velocity vectors.

Location

  • Location type: the location on the scene object geometry where particles will be placed.
Order index
  • Birth ID: when selected, the chosen mesh element index will correspond to the particles Birth ID ([Birth ID % number of elements]).

  • Event index: when selected, the chosen mesh element index will correspond to the particles event index ([event index % number of elements]).

When an ordered scatter mode is chosen, the flow needs a way to determine the order of surface elements and particles, so that particles can be scattered accordingly. The function used to determine the order of a particle in the flow is a modulus operation. By default, the particle’s event index will be used in the modulus operation, however if the number of particles in an event changes over time, this can lead to unexpected scatter locations for a particle in that event. In such cases, it may be better to use the particle’s birth ID in the modulus operation, since it isn’t affected by the number of particles in an event.

  • Surface Offset: controls whether particles will be offset from the surface they are placed on.

  • Min/Max: the minimum/maximum offset a particle may have from the surface it is placed on.

Density

Multiple density conditions can be enabled simultaneously to have an overall cumulative effect on where particles will be distributed.

  • Uniform Density: the number of particles that will be scattered on a particular surface mesh triangle will be relative to that triangle’s total area, resulting in an overall uniform distribution of particles on the surface mesh.
Density By Normals
  • Density by normals: controls whether the normal direction of surface mesh triangles will affect particle distribution.

  • XYZ: The target normal direction vector.

  • Thresh: the threshold for particle distribution, given a particular surface mesh triangle’s face normal in comparison to the target vector.

Density By Face Area
  • Density by face area: controls whether surface mesh triangle areas will affect particle distribution.

  • Area: the minimum face area required for a particular surface mesh triangle to quality for particle distribution.

  • Invert: the minimum area threshold will instead be treated as a maximum area threshold.

Density By MatID
  • Density by matID: controls whether surface mesh triangle material IDs will affect particle distribution.

  • ID: the material ID value that a surface mesh triangle must have in order to quality for particle distribution.

Density By Texture
  • Density by texture: controls whether a texture sampled on the surface of an input object will affect particle distribution.

  • Texmap source: the source of the texture map. If set to “specify”, it will be the specified texture map below, otherwise it will be derived from the selected channel of the position object’s material.

  • Texmap: the specified texture map which will control particle densities.

  • Tries: the number of attempts to make, while searching for a valid location on an input mesh (based on the texture map), before stopping the search.

  • Position as UVW: the position of the particle in world-space will be used as the UVW value used to sample the density texture.

  • Surface offset as W: the distance from the particle to the closest surface will be used as the W coordinate in the UVW value which is used to sample the texture.

“Surface offset as W” can be beneficial for sampling 3D maps like noise maps, but it can be detrimental for 2D maps like the Vertex Color map, which interprets any value over 1 in any UVW coordinate as solid white. “Surface offset as W” should be disabled when using Vertex Color maps for particle density.

Distinct Points
  • Distinct points: controls whether particle locations will be limited to a finite number of locations on the input objects.

  • Points: the number of distinct points to use.

Separation
  • Separation: controls whether particles must remain a certain distance from other particles before their location on a surface is considered valid.

  • Distance: the minimum distance allowed between particles on a surface.

  • Tries the number of attempts to make, while searching for a valid location on an input mesh (based on the separation distance), before stopping the search.

Sample

  • Sample type: controls which sampler will be used to determine closest-object proximities for particles.

Position Validity

If particle exceeds the max number of tries allowed for a particular density condition, its resulting position will be considered invalid.

  • Delete if invalid: controls whether particles with invalid positions will be deleted.

Orientation

  • Align to surface: aligns particles to the surface of their input object.

The Position Object operator offers no extra controls over surface alignment. A Rotation operator should be used instead if more control over surface alignment is required.

Object index tracking

  • Save object index: controls whether the 0-based index of the object in the input object list that a particle was positioned on is saved to a the particle’s custom data channel.

Interpolation

  • Normal interpolation: linearly interpolates the current value towards the target value.

  • Full interpolation on entry: linearly interpolates the particle's current value towards the target value, unless the particle's event age is 0 - then the particle's current value will be set to the target value.

  • Full interpolation at time of birth: linearly interpolates the particle's current value towards the target value, unless the particle's age is 0 - then the particle's current value will be set to the target value.

  • Curve interpolation (static): uses a curve to interpolate the particle's current value towards the value assigned to the particle when the particle first entered the event.

  • Curve interpolation (dynamic): uses a curve to interpolate the particle's current value towards the target value.

  • Duration: the number of frames over which the curve interpolation will be performed.

  • Value: the amount to linearly interpolate values each frame.

  • Variation %: the amount of variation to apply to the interpolation value.

Uniqueness

  • Seed: the seed value for all varied parameters.

  • Seed by time: the seed value will be incremented with the current time in ticks.