|On this page|
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.
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.
You can object merge the
CONSTRAINT_NETWORK SOPfrom inside of this node to recover the connectivity graph of the pieces. This is useful for feeding into a glue constraint network.
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.
Group to Fracture
The geometry to be fractured.
If no group is specified, the full input geometry will be fractured.
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.
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
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.
Determine whether the input points are 1D, 2D, or 3D and generate a triangulation for them.
Assume points are 2D and triangulate.
Assume points are 3D and tetrahedralize.
Use an existing triangulation on the input points.
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.
Enabling this option means that the geometry will be re-fractured any time the Cluster parameters are changed.
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.
The size of the cells for the noise added to the input points. This roughly corresponds to the size of the clusters.
The offset of the cellular noise added to the input points.
The jitter of the cellular noise added to the input points.
Randomly detach pieces from clusters.
The random seed used for detachment.
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.
The name of the cluster attribute.
Pieces will be considered in the same cluster if their cluster attribute value is within this tolerance.
Pieces in the same cluster are fused together with this tolerance.
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.
The size of the polygons added to the interior surfaces.
The type of noise added to the interior points.
The frequency of the noise added to the interior points.
The offset of the noise added to the interior points.
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.
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.
The group containing any primitives in the interior surfaces created during fracturing.
The group containing the primitives in the original input geometry.
Create Name Attribute
Create a primitive attribute called "name" identifying primitives belonging to each piece.
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.
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.
The name of the attribute indicating if a primitive is exterior or interior.
The name of the attribute containing the depth of a point within the surface of the object when creating interior detail.
The following examples include this node.
This example shows how to use a SOP Solver to break spring constraints in a constraint network that have stretched too far.
This example shows how to gradually remove glue bonds from a constraint network and control the crumbling of a building.
This example shows how to create a constraint network to glue together adjacent pieces of a fractured object. It also shows how primitive attributes such as 'strength' can be used to modify properties of individual constraints in the network.
This example shows how to create spring constraints between nearby objects, and then change those constraints to glue constraints during the simulation.
This example demonstrates how to use the Magnet Force node on a group of metaballs to force the fragments of an object outwards at the moment of impact.
This example demonstrates the how the shatter, RBD Fractured Object, and Debris shelf tools can be used to create debris emanating from fractured pieces of geometry.
First, the Shatter tool (from the Model tool shelf) is used on the glass to define the fractures. Then the RBD Fracture tool is used on the glass to create RBD objects out of the fractured pieces. Then the Debris tool is used on the RBD fractured objects to create debris.
This example shows how one can control the break up of any glued object through the use of the RBD State node.
In this version of the choreographed breakup example, a moving plane is used to choreograph the breakup of a fractured tube. As the plane passes each piece, it is allowed to break off from the rest of the tube.
This example shows how to use animated packed primitives in an RBD Packed Object and set up a transition to active objects later in the simulation.
This example demonstrates how to use the Script Solver node to scale fractured pieces of an RBD sim over time.
This example actually includes eight examples of ways that you can use voronoi fracturing in Houdini. In particular, it shows how you can use the Voronoi Fracture Solver and the Voronoi Fracture Configure Object nodes in your fracture simulations. Turn on the display flags for these examples one at a time to play the animation and dive down into each example to examine the setup.
This example shows how you can break a sphere into packed objects for use in a rigid body simulation using the Assemble SOP.
Here is an example of accumulating and fading an attribute
This example demonstrates a creating points for each matching record in the DOP simulation. This lets us create a point for each object or a point for each impact.
This example shows how to use the gluecluster SOP and glue constraint networks to cluster together the pieces of a voronoi fracture. This allows clustering to be used with Bullet without introducing concave objects.