Fatness / Thickness

The Fatness / Thickness augments the initial geometry with volume properties.

Carbon internally works with Outer Fatness and Inner Fatness but all plugin objects also allow for Thickness input, which is used as follows:

\(Outer Fatness = Inner Fatness = 0.5 * Thickness\)

Inner Fatness

The Inner Fatness for a single-sided geometry describes the maximum penetration depth allowed.

The existence of an Inner Fatness (Inner Fatness > 0) means that the collider is single-sided. If the Inner Fatness is zero, then the collider is double-sided. Using Inner Fatness and treating the surface of a volume as single-sided enhances the robustness of the collision handling but can be tricky to set up correctly.

  • If set too small, you will have to set a higher number of subdivisions for the simulation in order to prevent missing collisions; but that will slow down the simulation.
  • If set too high, the simulation will literally vacuum cloths from the other side and corrupt or even crash the simulation.

In case of a simple volume such as a cube you can easily set it up to a larger value, but still no more than half of its side’s length.

For complex geometries with thin sections, you have the following options:

  • Set Inner Fatness to a small value. This has to be at least half of the smallest surface separation distance, e.g. half of the width of a finger.
  • Remove these parts from the geometry (usually feet, face, hands/fingers).
  • Make the collision geometry double-sided (by setting Inner Fatness=0) in extreme cases where the options above cannot be applied.
_images/user_guide_fatness_1.png

Inner and Outer Fatness for a single-sided collision shape.

Outer Fatness

The Outer Fatness describes the distance between the shape geometry and the effective colliding surface.

_images/user_guide_fatness_2.png

Outer Fatness for a double-sided collision shape.

Note

The Outer Fatness can be set to 0 for a single-sided collider, but it is best to keep a small value to smooth the external surface.

Self Fatness

This parameter is only available for deformable objects, such as morph. It describes the fatness value used for self-collision, while Outer Fatness describes the fatness value used for colliding with other objects.

Note

If no Self Fatness is explicitly set in the ui, the Outer Fatness value will internally be applied as Self Fatness as well.

Cloth

Cloths are double-sided collision shapes by nature.

Its collision behavior is controlled via Thickness and optional Self Thickness. Thickness is used for colliding with other objects, while Self Thickness is used for self-collision.

Note

If no Self Thickness is explicitly set in the ui, the Thickness value will internally be applied as Self Thickness as well.

There is an internal limitation as to how much of a given self thickness can be used in self-colliding cloths. Internally, the self fatness (half the self thickness) cannot exceed half the height of the smallest triangle or edge of the cloth reference geometry. Any self thickness values set above that threshold will be ignored in all self-collision situations, and the cloth won’t look as thick as indicated (but will still interact at the given thickness with other dynamic objects).

Note

  • Setting the thickness to the largest reasonable value, upfront, helps to create a good result to iterate on.
  • A larger thickness costs more collision execution time, but is also more robust when multiple layers of cloth are colliding.

It should be remembered that any open edge in a cloth garment will have half the thickness added to its length for collision purposes.

Often, in practice, this is can be ignored. However, if you have a situation where exact collision matters, for example a lapel and a collar that meet exactly with open edges or two open edges you want to stitch together at exactly the correct size, then you need to reduce the panel size at the open edge by half the thickness size.