Material-based Prefracturing for Rigid Body Destruction

Material-based prefracturing is a critical step to obtaining visually realistic destructions in visual effects. Houdini, prior to H17, already provides tools to handle rigid body destruction. However, due to a complicated workflow coupled with various technical difficulties in the software, the process to fracture geometries and set up a correct foundation for simulation can be challenging. For H17, a set of tools is provided to prefracture geometries based on three material types: concrete, glass, and wood. In doing so, the general destruction workflow in the pre-simulation stage is redesigned to optimize in performance, art-directability and the overall efficiency of the system. The development of the material-based fracturing toolkit will serve as the basis for future adaptations around rigid body destruction in Houdini.

Overview

Looking at the existing workflow, these were the main problems noticed. SimpleBullet is a modular toolkit developed by ILM back in 2015 and has since been integrated into WDAS and Pixar's pipelines. Although the exact implementation of SimpleBullet is not available, attending the talk at SIGGRAPH 2018 gave some insights as to how the system works.

With a clearer understanding of the problem space, six main design focuses were listed to drive the development of the solution. These objectives were created based on discussions with WDAS as well as analysis on the existing workflow.

To obtain nice size variations for concrete, RBD Recursive Fracture was developed which allows users to specify how many sub-fracture level is needed. Each fracture level can be scattered differently using a callback mechanism.

Edge detail for concrete is done with CSG Voronoi, which uses Voronoi to drive a Boolean fracture. This method is (believed to be) what SimpleBullet uses internally for fracturing. Using CSG Voronoi allows you to obtain noised edge without worrying about 1) generating cutting planes 2) displacing edge points.

Glass fracturing follows the fractography of glass closely. The fracturing is driven by one or more impact points, which will generate the corresponding radial, concentric cracks and chipping. Everything here is done with Voronoi.

Wood fracturing also follows closely to fracture mechanics, especially for automatically determining the direction of fracturing. The main features of wood are the grain and splinters. Unlike traditional Voronoi approach, this method uses Boolean which provides much better control and result.

These were some of the fracture results obtained using RBD Material Fracture.

To modularize the workflow, a series of RBD nodes were introduced. These nodes follow the new multi-input/output paradigm established, similar to Vellum. Users can work exclusively with just the geometry (like the old ways) if they're not comfortable with the multi-input/output system.

RBD Material Fracture leverages some of the latest tools introduced in Houdini, most noticeably the Invoke SOP. Invoke SOP was introduced to provide callback functionalities and opened the door for polymorphic structure in Houdini. RBD Recursive Fracture is achieved by using Invoke SOP. The use of RBD Recursive Fracture makes the usage of Voronoi and Boolean Fracture SOPs much lower level. In a way, the RBD Recursive Fracture "inherits" from both Voronoi and Boolean fracture and is promoted to be the more common tool.

To reduce the complexity of managing constraints, a new workflow is designed such that constraints are automatically updated/created upon fracturing. In this workflow, the idea of having constraint network outputted with the fractured geometry at any fracturing step is the key. RBD Rewire Constraints is created to rewire constraints based on the newly fractured geometry, and preserve tagged connections.

Using multiple RBD Material Fracture nodes based on each material/object type, the fracturing of the house becomes much easier. Using the group filter, specific parts of the input geometry can be isolated to be fractured in-place.

The constraint network after each RBD Material Fracture node is updated without any additional modifications. Pay attention to the colours of the constraints, which represent the types of connection (i.e. window to frame, wall to roof support etc.). Notice how the connections are retained and updated based on how the geometry is fractured.

Check out the tool from the sneak peak of H17! (3m30s - 4m05s)