Tetrahedralization

Carbon Tissue is an extension of the standard tetrahedral model, where primitives on the surface, i.e. Epidermis, can also receive Surface and Bend related constraints, like Surface Compression, Surface Extension, or Bend Stiffness.

Setting aside the addition of Volume constraints, such as Volume Compression and Volume Extension, the Carbon Tissue constraints and user interface are the same as for Carbon Cloth.

Similarly, much attention should be paid to the geometry creation process for tetrahedral geometry, and best practices for creating geometry for Carbon Cloth, outlined in Geometry Checklist and Carbon Cloth Hints, can be extrapolated for creating tetrahedral geometry.

Starting From A Surface Geometry

The first step to creating tetrahedral geometry is to create a surface geometry. All rules for creating simulation-ready Carbon Cloth apply at this stage.

Especially when using an Epidermis (Surface and Bend related constraints) on the Carbon Tissue, you need to decide how fine the surface tessellation has to be in order to accurately represent the correct material behavior of the simulated object.

For example, a sponge like object might be very compressible, but generally does not exhibit fine or sharp creases in real life. But on the other hand, if you simulate a human face and want accurate wrinkles around the eyes, you will need very small tetrahedrons, and surface triangles to represent these areas of the face.

Converting Surface Geometry to Tetrahedrons

Houdini provides a node called Tetrahedralize, which allows the conversion of a surface geometry into a tetrahedral geometry. This node offers different levels of customization.

Warning

In Houdini versions 18.5 and up, instead of Tetrahedralize.

Note

Input geometry for Tetrahedralize nodes but be closed (only manifold edges) and free of self-intersections.

Avoid Splinters

No matter how you decide to tetrahedralize the geometry: Try to avoid shard or splinter-like tetrahedrons at all cost.

Often, a geometry might seem to be perfectly tetrahedralized at first glance, but this might only be true for the outside, while the inner tetrahedrons could be splinter or shard-shaped. In order to help detect such cases, use the Clip SOP node. This tool will show a cross section, visualizing the containing geometry at the clipping plane. The screenshots below show a tetrahedralization containing shard/splinter-shaped tetrahedrons on the right and a uniform tetrahedralization in the middle, visualized with a Clip node. Note that they both have the same surface geometry (left).

_images/user_guide_tetrahedralization_splinter.png

Starting geometry (left) with uniform surface tessellation, uniformly sized tetrahedrons (middle) and splinter tetrahedrons (right).

Uniform Surface, Uniform Tetrahedralization

This is used for geometry where all parts are subject to similar or equal deformation, e.g. mattress, foam pillow, sponge. These objects exhibit a very uniform behavior and often do not require a high number of tetrahedrons to accurately represent characteristic material deformation.

_images/user_guide_tetrahedralization_uniform_uniform.png

Starting geometry (left) with uniform surface tessellation, and clipped view of the uniformly sized tetrahedral geometry (right).

Note

Similar to Cloth simulations, you can always simulate a more coarse object and use it to cage a high resolution render mesh.

_images/user_guide_tetrahedralization_uniform_uniform_low_res.png

Low resolution pillow that can be used as cage for a high resolution render geometry.

Non-Uniform Surface, Non-Uniform Tetrahedralization

A common case for this is a human face where we want accurate wrinkles around the eyes. Also, the ears are rather thin and subject to potentially some bending, which in itself dictates smaller tetrahedrons. So you will need very small tetrahedrons, and surface triangles, in these areas. Meanwhile, other parts of the face might not need that amount of detail. Most people’s cheeks will not wrinkle in the same fine way as the skin around their eyes.

Moreover, this is a perfect example where a uniform tessellation will result in non-realistic behavior, as the crease lines on the surface would have been hand modeled in the first place.

_images/user_guide_tetrahedralization_face.png

Non-uniform tessellation, respecting surface crease lines (left), and uniform surface tessellation (right).

Additionally, even if the behavior was acceptable, forcing the fine tessellation from around the eyes to the rest of the face will exponentially increase the total number of tetrahedrons in the face and drastically slow down the simulation.

Uniform Surface, Non-Uniform Tetrahedralization

You would typically find yourself in this category if you have an object for which you need very accurate collision, but still want to keep the number of tetrahedrons as small as possible to be able to simulate as fast as possible.

_images/user_guide_tetrahedralization_uniform_non-uniform.png

Starting geometry (left) with uniform surface tessellation, clipped view of the uniformly sized tetrahedral geometry (middle), clipped view of the non-uniformly sized tetrahedral geometry (right).

In the case of the screenshot above, the middle geometry contains ~31,700 tetrahedrons and the right geometry contains ~6,700 tetrahedrons.

It is important to note that if you go down this road, the behavior could be different from when the object is tetrahedralized uniformly. Depending on the object, it might be better or worse, and it’s recommended to test both options.

Additionally, try to create a smooth transition in size to prevent potential issues where small tetrahedrons can get wedged and corrupted between larger ones.