Houdini 20.0 Nodes Geometry nodes

Voronoi Fracture geometry node

Fractures the input geometry by performing a Voronoi decomposition of space around the input cell points

On this page
Since 11.0

The Voronoi fracture SOP takes two primary inputs: the mesh to fracture, and the points around which to build each Voronoi cell. Often these points will be generated by either the Scatter SOP, or the Points From Volume SOP, but any source of points will work. For a solid fracture (where the interior surface of the object is built for each piece) it is very useful to have all the points reside within the volume, in which case one fractured piece will be generated for for each cell point. Pieces cut by this SOP can be further clustered together based on attribute values on the input points. An optional third input can provide an SDF Volume to be used in depth sampling when generating detail on the interior surfaces.

Tips

  • Using points scattered in a density volume generated from the geometry using IsoOffset is a flexible way to generate cell points, as you can modulate the density in the volume before scattering to get more points within particular regions of the object. Where there is higher point density, the Fracture SOP will generate more, smaller pieces.

  • Mesh complexity slows down fracturing more than anything. PolyReduce before fracturing if you can.

  • When testing fractures, turning off Create Inside Surface will speed things up and should look the same on the surface of the object.

  • If you have problems with insufficient point density in long appendages or something in the input object, try scattering points after using IsoOffset and scaling the density up in those areas.

  • You can object merge the CONSTRAINT_NETWORK SOP from inside of this node to recover the connectivity graph of the pieces. This is useful for feeding into a glue constraint network.

Inputs

Geometry to Fracture

The polygonal geometry that will be fractured according to the Voronoi decomposition.

Points for Voronoi Cells

Input points, where each point represents a Voronoi cell around which to fracture the geometry.

Optional SDF For Depth Sampling

An optional SDF Volume, usually created by IsoOffset, to use for depth sampling when creating interior detail. If not connected, this node will generate a default one.

Parameters

Group to Fracture

The geometry to be fractured.

If no group is specified, the full input geometry will be fractured.

Fuse Points

The incoming geometry will have its points fused together. This can help detect closed objects to provide proper shattering of solid objects where points were uniqued for shading. However, it can also change the incoming topology, so if the geometry has already been properly fused, this should not be used.

Update Fused Point Normals

After fusing point normals may be come incorrect. This will rebuild the point normals if fusing is enabled. If custom point normals need to be maintained, this should be disabled.

Create Inside Surfaces

Creates inside faces.

Connect Inside Edges

Connects the inside faces of the fractured geometry to the corresponding outside faces.

Cusp Interior Normals

Computes vertex normals on the edges of the interior geometry, so that they will have a cusped appearance.

Cusp Interior Normals Angle

Computes vertex normals on the edges of the interior geometry with angles greater than this angle, so that they will have a cusped appearance.

Cusp Exterior Normals

Computes vertex normals on the edges of the input geometry, so that they will have a cusped appearance. If the input geometry already has normals, you may want to disable this.

Cusp Exterior Normals Angle

Computes vertex normals on the edges of the input geometry with angles greater than this angle, so that they will have a cusped appearance. If the input geometry already has normals, you may want to disable this.

Cusp Interior Edges by Uniquing Points

Cusps the edges of the interior geometry by duplicating points. This can result in disconnected geometry, so Cusp Interior Normals is recommended instead.

Visualize Pieces

Allows you to visualize fractured geometry by applying a random color to each piece.

Use Cell Point Group

Only fracture pieces around the input points in the group or pattern specified in the Cell Point Group parameter.

Cell Point Group

The point group from the input cell points around which to fracture.

Cluster Display Mode

Ignore Clustering

When Use Cell Point Group and Cluster are enabled, only cut those pieces directly specified in the Cell Point Group parameter, ignoring any clustered pieces.

Keep Any Clustered Pieces

Fracture and output any pieces clustered to the specified pieces as well.

Keep Clustered Pieces Only For Primary Point

When clustering, each piece is associated with a primary point which is the point with the lowest point number in the cluster. Only output pieces for this cluster if this primary point is specified in Cell Point Group.

Cut

Triangulation

Auto Detect

Determine whether the input points are 1D, 2D, or 3D and generate a triangulation for them.

2D

Assume points are 2D and triangulate.

3D

Assume points are 3D and tetrahedralize.

Use Existing

Use an existing triangulation on the input points.

Connectivity Partition

None

Do not further partition pieces into groups by connectivity.

Overwrite Piece Numbering

Normally each input cell point will create one output piece group. However, with concave objects this can mean that disconnected pieces of geometry are placed in the same piece group. Enabling this option will further divide the pieces into separate, connected groups of geometry. This option allows the piece numbers to be overwritten by this operation, which is fast and acceptable if you don’t need the piece numbers to match the input point numbers.

Maintain Piece Numbering

This option uses a slower algorithm to ensure that piece numbers remain consistent with input point numbers.

Cut Plane Offset

Offsets the cut plane between adjacent cell points before cutting. Increasing this has the effect of putting space between each fractured piece.

Optimize Cutting Based on Clustering

When clustering is enabled, avoid cutting any pieces that are fully surrounded by pieces in the same cluster.

Note

Enabling this option means that the geometry will be re-fractured any time the Cluster parameters are changed.

Cluster

Cluster Pieces

Fuse the individual pieces into larger clusters based on their input points sharing a common, non-zero cluster attribute value. Values for this attribute can come from attributes on the input points, or from noise as specified below.

Add Cluster Noise

Add cellular noise to any input points with a zero cluster attribute value.

Size

The size of the cells for the noise added to the input points. This roughly corresponds to the size of the clusters.

Offset

The offset of the cellular noise added to the input points.

Jitter

The jitter of the cellular noise added to the input points.

Random Detachment

Randomly detach pieces from clusters.

Detach Seed

The random seed used for detachment.

Detach Ratio

The probability that a particular piece will be detached.

Create Constraint Network

If selected, the constraint network in the internal CONSTRAINT_NETWORK SOP will have its primitive values overwritten if the edge marks a connection between two clustered pieces. Also, fusing won’t be performed, since the network will be presumed to handle holding the clusters together.

Within Cluster Constraint Strength

The strength of glue bonds between two pieces in the same cluster.

Between Cluster Constraint Strength

The strength of glue bonds between two pieces in different clusters.

Cluster Attribute

The name of the cluster attribute.

Attribute Tolerance

Pieces will be considered in the same cluster if their cluster attribute value is within this tolerance.

Fuse Tolerance

Pieces in the same cluster are fused together with this tolerance.

Interior Detail

Add Interior Detail

Add additional polygons to the interior surfaces created when Create Inside Surfaces is enabled.

Visualize Noise Scale

Add color to the pieces to indicate the amount of noise applied at each point.

Triangulate Non-Planar Detail

The Add Interior Detail option can create non-planar quadrilaterals. This option will triangulate the interior detail.

Detail Size

The size of the polygons added to the interior surfaces.

Noise Type

The type of noise added to the interior points.

Frequency

The frequency of the noise added to the interior points.

Offset

The offset of the noise added to the interior points.

Turbulence

The turbulence of the noise added to the interior points.

Depth Volume Resolution

Resolution of the default depth sampling SDF.

The amplitude of the noise added to the interior points is scaled by the depth of the point within the surface of the original geometry, calculated by sampling an SDF of the geometry. If an SDF is not connected to the third input of the SOP, a default one will be created at this resolution.

Clamp Displacement Amount to Depth

Limit the amount of displacement done at a point by its depth within the surface.

When adding high amplitude noise to the interior points, it’s possible that the interior surface could interpenetrate the exterior. This option will clamp the amount of displacement at a particular point by the depth within the surface.

Clamp Depth Percentage

The percentage of the depth within the surface to which the displacement should be clamped.

Because an SDF is not a perfect representation of depth, this option allows you to clamp to a percentage of the depth. Lowering this can guarantee no interpenetration, at the expense of more clamping of the interior noise.

Depth / Noise Bias

The value for the bias curve that maps depth within the surface to the amplitude of the noise applied.

Use Depth / Noise Ramp

Use a ramp control for more precise control of the depth / noise mapping.

Depth / Noise Ramp

The ramp that maps from depth within the surface to the amplitude of the noise applied.

Groups

Create Output Groups

Create groups containing each individual piece, as well as the interior and exterior geometry.

Piece Group Prefix

The group name prefix applied to each piece created by the fracture.

Interior Group

The group containing any primitives in the interior surfaces created during fracturing.

Exterior Group

The group containing the primitives in the original input geometry.

Attributes

Create Name Attribute

Create a primitive attribute called “name” identifying primitives belonging to each piece.

Name Prefix

The prefix applied to the name of each piece created by the fracture.

Copy Cell Point Attributes

Copy attributes from the input cell points to the output piece geometry.

To Piece Points

The attributes to copy from the cell points to the points of the output piece geometry.

To Piece Primitives

The attributes to copy from the cell points to the primitives of the output piece geometry.

Keep Internal Attributes

Keep various attributes that are used during the fracturing process.

Primitive Piece

The name of the attribute containing the piece number with which each primitive is associated.

Primitive Cell Point

The name of the attribute on primitives that will store which of the fracture points it comes from.

Primitive Clip Point

The name of the attribute on interior surface primitives that correspond to the other piece adjacent at that surface.

Primitive Outside

The name of the attribute indicating if a primitive is exterior or interior.

Point Depth

The name of the attribute containing the depth of a point within the surface of the object when creating interior detail.

See also

Geometry nodes