The 3D Handbook
Key term

Convex hull

The tightest shape with no dents that wraps a mesh, like a rubber band or shrink-wrap. Physics engines use convex hulls as cheap, reliable collision; concave objects need several.

collisionphysicsengineoptimisation

A convex hull is "the smallest convex set that contains" a shape (Wikipedia: Convex hull). Picture "the shape enclosed by a rubber band stretched around" an object (Wikipedia: Convex hull); in 3D, shrink-wrap. Every dent, hole and opening in the original is filled in.

In game art, convex hulls matter because physics engines handle convex shapes far more cheaply and reliably than arbitrary triangle meshes. They are the usual building block for collision meshes that need a tighter fit than a box.

#Convex and concave

A shape is convex when a straight line between any two points inside it stays inside. A box, a sphere, a wedge and a pyramid are convex. An L-shape, an arch, a cup or a hollow box are concave. Godot's documentation states the rule: "a convex shape can only accurately represent a shape that doesn't have any concave angles (a pyramid is convex, but a hollow box is concave)" (Godot Engine documentation: Node type customization using name suffixes).

Three versions of a stone archway. Left, the archway itself. Centre, a single orange convex hull wraps it and fills the opening. Right, three orange convex pieces cover the two pillars and the lintel, and a capsule fits through the opening.
One convex hull around an arch blocks the doorway. Three convex pieces, one per pillar and one for the lintel, keep it open.Diagram by the handbook author

#Convex shapes in game engines

#Convex decomposition

Concave objects need several hulls. Splitting a mesh into convex parts is called convex decomposition. You can do it by hand, which gives the most control, or with a tool.

V-HACD is an open-source library that "decomposes a 3D surface into a set of 'near' convex parts" (GitHub: V-HACD: Volumetric Hierarchical Approximate…). Its documentation explains the motivation: a single convex hull approximates a concave shape poorly and causes false collisions, so a decomposition gives more accurate shapes while staying fast enough for real time (GitHub: V-HACD: Volumetric Hierarchical Approximate…). Its default target of 32 hulls is, in its author's words, "often way too high" (GitHub: V-HACD: Volumetric Hierarchical Approximate…). The project is now archived, and its page recommends CoACD for new work (GitHub: V-HACD: Volumetric Hierarchical Approximate…).

Godot's -convcolonly import suffix builds collision "using convex decomposition" (Godot Engine documentation: Node type customization using name suffixes). Unreal's FBX import and Static Mesh Editor options are covered in collision meshes.

collision meshes · player collision capsule · manifold and non-manifold geometry · polygon and triangle budgets

#Further reading and watching

V-HACD on GitHub
an approximate convex decomposition library with an explanation of why decomposition is more accurate than a single hull. Advanced, free.
WebAdvancedFree

References

  1. Wikipedia contributors · Convex hull · Wikipedia · web · accessed 2026-10-21
  2. Godot Engine contributors · Node type customization using name suffixes · Godot Engine documentation (source on GitHub), 2026 · docs · accessed 2026-10-21
  3. Unity Technologies · Mesh collider component reference · Unity Manual, 2026 · docs · accessed 2026-10-21
  4. Khaled Mamou and contributors · V-HACD: Volumetric Hierarchical Approximate Convex Decomposition · GitHub · tool · accessed 2026-10-21

Last updated 2026-10-22