|On this page|
The RBD Material Fracture tool not only fractures your geometry, but it also creates constraints for you between those pieces. If you want to create more constraints, there are 3 SOPs that allow you to do so, separate from the fracturing process. They follow the same 3 input/3 output RBD workflow, and give you a lot of control for building constraints. This is useful when you're fracturing two different types of materials, and want to create boundary constraints between them.
The constraint nodes provide a HUD with shortcuts and information about how to create constraints between pieces. In the viewport, hit Enter to activate the draw/edit mode. Then, press ⇧ Shift + F1 to display the HUD.
Sometimes, pieces aren’t accessible, because they're located inside an object and occluded by other fragments. To access those occluded pieces, turn on Geometry Culling. Then, move the mouse to the viewport and press 5 to display a customizable bounding box. Everything outside the box will be culled.
This node allows you to create and edit constraints between pieces in the viewport. It allows you to interactively draw constraints between the pieces you want to be connected. Once the constraint is drawn, you can choose the Connection Type to determine how the constraints are set up. For more information, see the RBD Constraints From Lines help page.
This tool lets you draw a curve in the viewport, and will create constraints between points on the geometry of nearby pieces within a specified search radius. RBD Constraints from Curves also gives you the option to provide a curve in the 4th input, so that you can use it procedurally. For more information, see the RBD Constraints From Curves help page.
This tool is a procedural node for creating constraints based on a set of rules and conditions. For example, you can constrain pieces based on groups and then only constrain the pieces that are within a certain bounding region.
All three constraint nodes will create simple primitives with a rest length attribute. The RBD Constraint Properties SOP node can be used afterward to create constraint groups and set up constraint types (such as glue or soft constraints). The help for the Constraint Network DOP has more background information about constraint networks (Constraint Network is the low-level DOP node responsible for converting SOP constraint geometry into the equivalent DOP constraints).
Types of connections
The default connection that’s created is Hinges. These create a hinge-like constraint between pieces, which you can visualize by the white dot on the constraint line.
Drawing Surface Points constraints will create anchor points where you clicked the mouse on the piece to place the constraint.
Center of Mass constraints will calculate the center of mass for the constrained pieces and create constraints between their centroids.
RBD Convert Constraints
The RBD Convert Constraints SOP allows you to easily take your existing constraints and convert them into a different type of constraint. The Constraint Type dropdown menu lets you decide if you want your constraints to be from the Center of Mass, Surface Points, or Faces.
Use the RBD Exploded View SOP to better visualize how your constraints are connected between the pieces.
Center of Mass
For more information, see the RBD Convert Constraints SOP help page.
Controlling constraint behavior
The RBD Bullet Solver node has parameters on the Constraints tab that let you control the behavior of constraints. The Breaking Thresholds subtab allows you to determine when to break constraints apart. For example, you can use the Distance Threshold to set the distance between anchor points beyond which a constraint will break, or the Force Threshold to set the force beyond which a constraint will break.
Turning on the constraint color visualizations can help determine which breaking threshold to use, and also help with debugging.
The RBD Constraint Properties node provides functionality similar to the parameters on the RBD Material Fracture node’s Constraints tab. You can use this as a convenient interface to edit values in the constraint network if you want to do more complex custom constraints. There are parameters to control plasticity in terms of stretching as well as the angle between the two objects in degrees where plasticity starts to take effect. This is useful for bending and breaking effects, where you want things to bend and hold their shape. For more information, see Bending and breaking.
The Use Tags parameter on the RBD Material Fracture SOP, creates a
constraint_tag string attribute on the constraint primitives instead of using primitive groups. This allows for more flexibility and matches the Vellum constraints. Tags can also be used with the Constraint Group parameter on the RBD Constraint Properties SOP to easily alter specific constraints.
Constraint browser pane
The Constraint Browser allows you to visualize and manage the attributes of existing RBD and Vellum constraints. For more information, see the Constraint Browser help page.
Understanding constraint networks
Houdini lets you set up constraints in SOPs using constraint geometry. This is a set of polylines with attributes that represent constraint relationships between geometry pieces. These are translated into the equivalent DOP constraints when the geometry is imported into the DOP network. This is to make it easy to set up, edit, and visualize constraints using the large number of SOP nodes dedicated to editing geometry and attributes.
Each constraint is represented by a two-point polyline.
Each polyline has a
constraint_typeprimitive attribute specifying the constraint type. The two common RBD constraint types are
Glue constraints keep two pieces together until the amount of force trying to separate them is greater than the glue strength.
Soft constraints are similar to springs, but instead of being bouncy, they bend until they break.
The polyline can have additional primitive attributes related to the constraint, such as
strengthfor glue, or
dampeningfor soft constraints.
The two endpoints each have a
nameattribute specifying the name of the piece that end represents.
The position of the endpoints may be used by different constraints, for example as anchor points.
For example, if you are destroying a house, you can start by constraining the door and windows to the walls they're embedded in.
As the RBD Material Fracture node breaks up the individual objects, it tries to intelligently update existing constraints. For example, if a pane of window glass starts constrained to the surrounding window frame, even as RBD Material Fracture shatters the glass, the node will keep the outer shards attached to the frame.