95 lines
3.5 KiB

.. index:: Geometry Nodes; Distribute Points on Faces
.. _bpy.types.GeometryNodeDistributePointsOnFaces:
Distribute Points on Faces
.. figure:: /images/node-types_GeometryNodeDistributePointsOnFaces.webp
:align: right
:alt: Distribute Points on Faces node.
The *Distribute Points on Faces* node places points on the surface of the input geometry object.
Point, corner, and polygon attributes of the input geometry are transferred to the generated points.
That includes vertex weights and UV maps.
Additionally, the node has *Normal* and *Rotation* outputs.
The node also generates a stable ID, stored in the built-in ``id`` attribute, used as
a stable identifier for each point. When the mesh is deformed or the density changes
the values will be consistent for each remaining point. This attribute is used in
the :doc:`Random Value </modeling/geometry_nodes/utilities/random_value>` and
:doc:`Instance on Points </modeling/geometry_nodes/instances/instance_on_points>` nodes.
Standard geometry input.
.. note::
The input geometry must contain a mesh with faces.
The selection of which face corners should be considered for point distribution.
Distance Min
The minimal distance points can have to each other.
This option is only available for the *Poisson Disk* distribution method.
At its default value of zero, the node's behavior is the same as it is in *Random* mode,
because none of the internally generated points are removed.
Density Max
The point density for the point distribution. The unit is in number of points per square meter.
This value is multiplied by the values from the *Density* input. Only available in *Poisson Disk* mode.
.. note::
This will be capped on distributions by the *Distance Min* option.
If the density is greater than what the minimal distance allows,
no new points will be added after this threshold has been passed.
The number of points to distribute per square meter on each mesh face.
This value is multiplied by the values from the *Density Attribute*.
In *Poisson Disk* mode, this value is multiplied by the *Density Max* input for the final density.
The random :term:`Seed` to use when generating points.
Distribution Method
Distribute points randomly on the surface. This is the fastest distribution method.
:Poisson Disk:
Distribute points randomly on the surface while taking a minimum distance into account.
Legacy Normal
By default, the node uses smooth and custom normals for the *Normal* and *Rotation* values .
An earlier version of this node only uses "true" normals,
this option brings back this behavior of only using "true" normals.
This option can only be available in the Sidebar.
Generated points. Named attributes are copied to the result mesh, along with the data in the other
attribute field outputs.
The :term:`Normal` of the triangle on which each point is scattered.
An XYZ :term:`Euler` rotation built from the normal attribute for convenience. Such a value can also be
built from the normal with the :doc:`/modeling/geometry_nodes/utilities/rotation/rotate_euler`. Keep in mind that
the Z axis of the result rotation will be arbitrary, since the mesh normal used to create the rotation
does not have enough information to set all three rotation axes.