Houdini 18.0

Destruction

How to break different types of materials.

On this page

Fracturing objects for simulation

Often in rigid body simulations, you want a solid object to break into pieces because of some impact or force. For example, you might want an earthquake to destroy a house, with the concrete walls fracturing, the wood door splintering, and glass windows shattering. Or you might want a swinging demolition crane ball to cave in a wall.

  • Most fracturing tools in Houdini support a pre-fracturing workflow, where you break the geometry into pieces in SOPs, with the pieces held together by glue constraints. Pre-fracturing gives you full artistic control over the look of the destruction (for example, do you want big blocky pieces or small jagged pieces). The object will crumble when a force overcomes the glue strength, or you can manually animate the glue off when you want the object to break down.

    The high-level tool for pre-fracturing geometry is the RBD Material Fracture SOP, with plenty of controls over different types of fracturing. There are many lower-level SOPs if you need even more control over fracturing.

    Image credit: Artem Smirnov

  • You can also do dynamic fracturing during the DOP simulation. See the help for Make Breakable tool for more information.

General workflow

RBD Material Fracture

Simulates breaking patterns associated with different materials: concrete, wood, and glass.

  • Can iterate multiple levels fracturing.

  • Can simulate low-res proxy geometry and copy piece transforms onto high-res geometry.

  • Automatically sets up glue constraints between the pieces.

  • Updates existing constraint geometry as it fractures.

  • Outputs groups and attributes with information about the fractures if you want to do more complex post-processing.

  1. Use the RBD Material Fracture node to pre-fracture your model in SOPs.

  2. RBD Material Fracture automatically creates glue constraints between the fractured pieces. On the Constraints tab you can set the Primary strength to the initial glue strength you want.

    After you import the fractured object into an RBD simulation (see the next step), you can go back and edit the settings on the RBD Material Fracture and edit the glue strength to control how much the pieces stick together.

    The value depends on the size and weight of your pieces, and what effect you want to achieve. A value of 1 will usually fall apart immediately.

    If you want the model to stay together until it’s hit by another RBD object, you will need to fine-tune the glue strength to a level where it’s high enough to keep the model stays together on its own, but not so high it prevents an impact from breaking the constraints.

  3. You can either use the RBD Bullet Solver node to simulate in SOPs, or import the fractured object into DOPs as rigid body pieces by using the RBD Objects tool on the Rigid Bodies shelf.

See the rest of this page for more information on the available tools.

Tips

  • Use the Group node to name groups of primitives. For example, the door, individual windows, and walls. This will allow you to fracture them individually.

  • If you see pieces spinning/wobbling in the simulation, you can particle drag to freeze them.

  • You can use the Output for view menu on RBD SOPs to choose which output is displayed. By default, the first output (Geometry) is displayed. However, you can also toggle between Constraint Geometry and Proxy Geometry.

  • Clicking on outputs of the RBD SOPs will show the data for each individual output. Additionally, if you click on the inputs, it will trace up to the geometry data coming in.

RBD SOP inputs and outputs

The RBD Material Fracture node and several other RBD SOP nodes share a consistent set of inputs and outputs, that let you send constraint geometry and proxy geometry through the network alongside the fractured geometry.

Low-res proxy geometry

The RBD Material Fracture node can work on fast low-res proxy geometry. You need to set up high-res and low-res geometry with the same named pieces (for example, by breaking up the high-res geometry into named pieces and then copying and reducing the number of polygons to create the proxy).

Clustering

Clustering refers to grouping fractured pieces into bigger clumps. There are two main clustering workflows:

  • If you just want a bunch of pieces to stick together permanently, give them all the same name attribute. Nodes that work on pieces will treat them as once piece.

    This can be useful, for example, with wood splintering, where you often want to group small splinters into bigger jagged chunks.

  • For certain directable crumbling effects, you will often want to work with bigger pieces early in the shot and have them break down into smaller pieces later in the shot. You can do this with a hierarchy of glue constraints. You can animate higher-level constraints off to break up bigger pieces into smaller pieces.

The RBD Material Fracture node provides clustering controls when the Material type is "Wood". You can do manual clustering with the RBD Cluster node.

Importing a fractured object into DOPs

The Rigid bodies shelf has tools for importing geometry objects into the DOP simulation.

RBD Objects

Use this tool to import fractured objects. It automatically treats the named pieces as separate Bullet objects, and translates the constraint network geometry into Bullet constraints.

Other rigid body simulation tools:

RBD Hero object

This is for importing an object as a single, unbreakable entity. Do not use this to import fractured geometry.

RBD Glued Objects

This tool imports an object containing loose pieces and adds glue between them. Do not use this to import fractured geometry created with RBD Material Fracture since that node already creates glue constraints automatically.

Make Breakable

Sets up an object for dynamic fracturing in response to simulated impacts.

Debris shelf tool

Generates particles from the edges of crumbled pieces. You can use these particles to instance smoke, dust, pebbles, and so on as secondary effects.

RBD SOP support nodes

The following nodes work with the RBD Material Fracture node. They all have the same inputs and outputs as RBD Material Fracture.

RBD Paint

Lets you paint attributes on the input geometry to control how the fracturing works, for example paint where you want more fracturing to occur.

  1. Put this node above the RBD Material Fracture node in the network.

  2. Use this node to paint the density attribute where you want more fracturing.

  3. In the downstream RBD Material Fracture node, set Scatter from to "Attribute".

RBD Bullet Solver

Lets you create simple bullet simulations at the SOP level. If you have a Houdini FX License, you can dive inside the solver and edit the subnet with custom DOP forces. Otherwise, you can stay at the SOP level and use the exposed parameters on the node.

RBD Configure SOP

Lets you set up properties individually for different sets of RBD objects. It also packs the input geometry and proxy geometry if unpacked, and creates attributes on the simulation geometry.

RBD Constraint Properties

Edits constraint geometry. This 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.

RBD Interior Detail

Adds noise to exposed interior surfaces after fracturing. This provides functionality similar to the parameters on the RBD Material Fracture node’s Detail tab.

RBD Cluster

Groups pieces together into bigger pieces. This provides functionality similar to the parameters on the RBD Material Fracture node’s Cluster tab when Material type is "Wood".

RBD Exploded View

Pushes selected geometry out from the center to allow you to better visualize how fractured geometry is broken up and constrained.

RBD Convert Constraints

Allows you to take your existing constraints and convert them into a different type of constraint, such as Center of Mass, Surface Points, or Faces.

RBD Connected Faces

Records the primitive number and distance to the opposite face on the inside faces of the fractured geometry. You can then use this information to decide whether or not to dissolve any interior faces on pieces that haven’t broken apart.

RBD Disconnected Faces

Determines if connected faces have become separated, and stores the result as an attribute or deletes connected/disconnected faces.

RBD Pack

Merges the three RBD SOP inputs (geometry, constraint network geometry, proxy geometry) into a single output.

RBD Unpack

Splits out geometry, constraint geometry, and proxy geometry into separate RBD SOP-style outputs.

RBD Constraints From Lines

Creates rigid body constraint geometry from interactively drawn lines in the viewport.

RBD Constraints From Curves

Creates rigid body constraint geometry from curves drawn in the viewport.

RBD Constraints From Rules

Creates rigid body constraint geometry from a set of rules and conditions.

Low-level SOPs

These are lower-level nodes, many of which are used inside the RBD Material Fracture SOP to provide functionality. You may find them useful if you are doing complex custom fracturing.

Connect Adjacent Pieces

Creates constraint geometry based on connectivity and proximity. This is a lower-level node providing functionality included in RBD Material Fracture.

Assemble

Assigns name attributes to pieces based on connectivity.

Voronoi Fracture Points

Very low-level node for Voronoi fracturing.

Voronoi Split

Very low-level node for Voronoi fracturing.

Enumerate

Sets an attribute on selected points or primitives to sequential numbers or strings, which is an easy way to name your pieces with a prefix without having to use a wrangle SOP.

Subtopics

Houdini 18.0

Getting started

Using Houdini

  • Geometry

    How Houdini represents geometry and how to create and edit it.

  • Copying and instancing

    How to use copies (real geometry) and instances (loaded or created at render time).

  • Animation

    How to create and keyframe animation in Houdini.

  • Character

    How to rig and animate characters in Houdini.

  • Digital assets

    Digital assets let you create reusable nodes and tools from existing networks.

  • Import and export

    How to get scene, object, and other data in and out of Houdini.

  • Executing Tasks

    How to define dependencies and schedule tasks using TOP networks.

  • MPlay viewer

    Using Houdini’s stand-alone image viewer.

Dynamics

  • Particles

    How to create particle simulations.

  • Dynamics

    How to use Houdini’s dynamics networks to create simulations.

  • Vellum

    Vellum uses a Position Based Dynamics approach to cloth, hair, grains, and softbody objects.

  • Pyro

    How to simulate smoke, fire, and explosions.

  • Fluids

    How to set up fluid and ocean simulations.

  • Destruction

    How to break different types of materials.

  • Grains

    How to simulate grainy materials (such as sand).

  • Crowd simulations

    How to create and simulate crowds of characters in Houdini.

  • Hair and Fur

    How to create, style, and add dynamics to hair and fur.

  • Finite Elements

    How to create and simulate deformable objects

Nodes

  • OBJ - Object nodes

    Object nodes represent objects in the scene, such as character parts, geometry objects, lights, cameras, and so on.

  • SOP - Geometry nodes

    Geometry nodes live inside Geo objects and generate geometry.

  • DOP - Dynamics nodes

    Dynamics nodes set up the conditions and rules for dynamics simulations.

  • VOP - Shader nodes

    VOP nodes let you define a program (such as a shader) by connecting nodes together. Houdini then compiles the node network into executable VEX code.

  • ROP - Render nodes

    Render nodes either render the scene or set up render dependency networks.

  • CHOP - Channel nodes

    Channel nodes create, filter, and manipulate channel data.

  • COP2 - Compositing nodes

    Composite nodes create, filter, and manipulate image data.

  • TOP - Task nodes

    TOP nodes define a workflow where data is fed into the network, turned into "work items" and manipulated by different nodes. Many nodes represent external processes that can be run on the local machine or a server farm.

Lighting, rendering, and compositing

  • Solaris

    Solaris is the umbrella name for Houdini’s scene building, layout, lighting, and rendering tools based on the Universal Scene Description (USD) framework.

  • Rendering

    How to render images and animation from the 3D scene.

  • Materials

    How to assign materials and create custom materials for shading.

  • Compositing

    Houdini’s compositing networks let you create and manipulate images such as renders.

Reference

  • Menus

    Explains each of the items in the main menus.

  • Viewers

    Viewer pane types.

  • Panes

    Documents the options in various panes.

  • Windows

    Documents the options in various user interface windows.

  • Stand-alone utilities

    Houdini includes a large number of useful command-line utility programs.

  • Python Scripting

    How to script Houdini using Python and the Houdini Object Model.

  • Expression functions

    Expression functions let you compute the value of parameters.

  • HScript commands

    HScript is Houdini’s legacy scripting language.

  • VEX

    VEX is a high-performance expression language used in many places in Houdini, such as writing shaders.

  • Properties

    Properties let you set up flexible and powerful hierarchies of rendering, shading, lighting, and camera parameters.

  • Python Panels

    You can script custom pane types using Python to create your own UIs.

  • Galleries

    Pre-made materials included with Houdini.

  • Houdini Packages

    How to write and combine multiple environment variable definition files for different plug-ins, tools, and add-ons.