IT lexicon › Programming › Convex decomposition

Convex decomposition

Programming På svenska → Updated: 2026-10-24

Splitting a concave mesh into a set of convex pieces so a physics engine can collide against it quickly.

Collision algorithms like GJK and SAT assume convex shapes — a bowl, a chair or a letter of the alphabet is concave and breaks that assumption. The fix is to replace the concave shape with several convex hulls that together roughly fill it. Exact decomposition yields mathematically correct but unreasonably many pieces, so engines settle for approximate convex decomposition within a chosen concavity tolerance.

The standard tool is V-HACD (Khaled Mamou, around 2011): it voxelises the mesh and greedily merges clusters into a bounded number of convex hulls. It ships in Bullet, Unity and Unreal. The trade-off is simple — fewer hulls mean faster but looser collision, more hulls mean a truer shape at a higher cost.

← Back to the lexicon