Houdini 20.0 Nodes Geometry nodes

Scatter geometry node

Scatters new points randomly across a surface or through a volume.

On this page

Overview

This node distributes new points across the surface in a roughly uniform pattern and attempts to limit clumping and holes.

For volume primitives, this node scatters points through the volume with a density proportional to the field value (with negative values giving zero probability).

You can use the generated points for a variety of purposes. They may be used to specify birthing locations for particles, template points for copying, or as queues for irradiance computations.

For surfaces, you can base the distribution of points on the surface area of faces (faces with a larger surface area will get more points), a user defined attribute, or a blend of area and attribute.

This node scatters the points in UV (surface) space. That means surfaces with pinched sides (like NURBS spheres and cones) will have non-uniform distributions in 3D space.

Using Scatter

  1. Click the Display points icon in the display toolbar on the right side of the scene view.

  2. Select the object you want the points to scatter randomly across.

  3. Click the Scatter tool on the Model tab.

    Scatter replaces the surface of an object with random points.

You can change the number of points or density of points in the parameter editor.

Making scattered points stick on deforming geometry

Since the Scatter node recomputes at each frame, if the shape of the geometry changes over time, the point positions and point numbers will change randomly from frame to frame.

To prevent this, the Scatter node lets you specify static “rest” geometry to scatter on using the Measure node and the area attribute. You can use this technique to plant guide hairs on deforming meshes for tasks such as sticking curves for facial hair on characters (eyebrows, mustaches, etc).

To...Do this

Stick scattered points to the original shape

  1. Insert a Measure node between the geometry’s rest position and the node(s) deforming the geometry.

  2. On the Measure node set Type to “Area”.

  3. On the Scatter node, set Alternate Attribute to area and Attribute Bias to 1.

Stick to the shape of the geometry at some frame

If the deforming geometry is cached to disk, you can branch off a Time Shift node set to a static frame and follow with the Measure node, then use an Attribute Copy node to copy that area attribute to the deforming geometry.

Stick to the shape of the geometry stored in rest attributes

If you have rest attributes on the geometry, you can branch off a Point SOP, use $RESTX $RESTY and $RESTZ in place of $TX $TY and $TZ in the Position parameters to switch the geometry to its rest position, then Measure the rest geometry and use an Attribute Copy node to copy the area attribute to the deforming geometry.

Parameters

Group

Subset of geometry to consider when generating points.

Keep Original Geometry

Keep original geometry after scattering points.

Compute Number of Points

Instead of scattering a fixed number of points, calculate the total area and use that as a scale on the points value.

Note

This total area includes the effects of any alternate attribute.

Number of Points

Number of points to scatter over the input geometry.

Points per Area

Number of points to scatter for every unit of area in the primitives.

Use Density for Volumes

Instead of using the surface area of the box that contains the primitive volume as the area, use the total non-zero component of the volume. This becomes a measure of volume rather than area, but matches expectations if one is measuring the amount of smoke in a primitive volume.

Random Seed

Different scattering patterns will be generated for different seed values. Set this to $T if you want every frame to have a different pattern.

Scatter based on primitive area

Use the surface area of primitives to influence the distribution of points.

Alternate Attribute

An alterative attribute used to influence the distribution of points. This attribute can be either a point, primitive or vertex attribute. Lower attribute values will result in fewer points being generated, while higher values will result in more points being generated.

Blending Algorithm

This parameter uses both the primitive area and alternate attributes.

Linear Interpolation

P = lerp(P(area), P(attrib), weight).

A value of 0 is equivalent to weighting by area. A value of 1 equivalent to weighting by the attribute.

Multiplication of Probabilities

P = P(area) * P(attrib)

If there is a zero area polygon for example, it’s attribute value will be ignored.

Attribute Bias

When an alternate attribute is specified, this determines how much of an effect the attribute has. A bias of 0 is equivalent to specifying no attribute at all (no effect), while a bias of one uses the attribute values exclusively.

Compute nearest points

After the points have been scattered on the surface, it is sometimes useful to determine how far apart the points are scattered (when using the points for irradiance computations for example). The mean distance to the nearest N points can be pre-computed and stored in a point attribute if this parameter is turned on.

Points to consider

The distance to the N the point will be stored in the attribute. For example, if a value of 4 is specified, the attribute will store the distance to the fourth nearest point.

Store in attribute

Name of the attribute to store the coverage distance.

Divide Non-Convex Polygons

Divide non-convex polygons so that points are correctly distributed for both convex and non-convex polygons.

Note

If Keep Original Geometry is selected, the geometry kept will be convexed.

See also

Geometry nodes