Table of Contents
Fetching ...

Convex Primitive Decomposition for Collision Detection

Julian Knodt, Xifeng Gao

TL;DR

The paper addresses the challenge of efficiently generating collision objects for complex meshes by introducing a bottom-up convex primitive decomposition that fits parametric primitives to enclose the input surface. It builds on quadric-based linear operators to derive primitive orientations and uses a greedy, volume-based merging strategy to produce compact, editable colliders. Empirical results on a large Sketchfab dataset show closer input adherence, lower memory usage, and faster rigid-body simulation than prior convex-decomposition methods, supporting practical adoption in game pipelines. The approach emphasizes editor-friendly workflows, non-reliance on learning, and scalability to meshes with millions of faces, enabling robust, efficient collision proxies for real-time applications.

Abstract

Creation of collision objects for 3D models is a time-consuming task, requiring modelers to manually place primitives such as bounding boxes, capsules, spheres, and other convex primitives to approximate complex meshes. While there has been work in automatic approximate convex decompositions of meshes using convex hulls, they are not practical for applications with tight performance budgets such as games due to slower collision detection and inability to manually modify the output while maintaining convexity as compared to manually placed primitives. Rather than convex decomposition with convex hulls, we devise an approach for bottom-up decomposition of an input mesh into convex primitives specifically for rigid body simulation inspired by quadric mesh simplification. This approach fits primitives to complex, real-world meshes that provide plausible simulation performance and are guaranteed to enclose the input surface. We test convex primitive decomposition on over 60 models from Sketchfab, showing the algorithm's effectiveness. On this dataset, convex primitive decomposition has lower one-way mean and median Hausdorff and Chamfer distance from the collider to the input compared to V-HACD and CoACD, with less than one-third of the complexity as measured by total bytes for each collider. On top of that, rigid-body simulation performance measured by wall-clock time is consistently improved across 24 tested models.

Convex Primitive Decomposition for Collision Detection

TL;DR

The paper addresses the challenge of efficiently generating collision objects for complex meshes by introducing a bottom-up convex primitive decomposition that fits parametric primitives to enclose the input surface. It builds on quadric-based linear operators to derive primitive orientations and uses a greedy, volume-based merging strategy to produce compact, editable colliders. Empirical results on a large Sketchfab dataset show closer input adherence, lower memory usage, and faster rigid-body simulation than prior convex-decomposition methods, supporting practical adoption in game pipelines. The approach emphasizes editor-friendly workflows, non-reliance on learning, and scalability to meshes with millions of faces, enabling robust, efficient collision proxies for real-time applications.

Abstract

Creation of collision objects for 3D models is a time-consuming task, requiring modelers to manually place primitives such as bounding boxes, capsules, spheres, and other convex primitives to approximate complex meshes. While there has been work in automatic approximate convex decompositions of meshes using convex hulls, they are not practical for applications with tight performance budgets such as games due to slower collision detection and inability to manually modify the output while maintaining convexity as compared to manually placed primitives. Rather than convex decomposition with convex hulls, we devise an approach for bottom-up decomposition of an input mesh into convex primitives specifically for rigid body simulation inspired by quadric mesh simplification. This approach fits primitives to complex, real-world meshes that provide plausible simulation performance and are guaranteed to enclose the input surface. We test convex primitive decomposition on over 60 models from Sketchfab, showing the algorithm's effectiveness. On this dataset, convex primitive decomposition has lower one-way mean and median Hausdorff and Chamfer distance from the collider to the input compared to V-HACD and CoACD, with less than one-third of the complexity as measured by total bytes for each collider. On top of that, rigid-body simulation performance measured by wall-clock time is consistently improved across 24 tested models.
Paper Structure (21 sections, 5 equations, 29 figures, 5 tables, 3 algorithms)

This paper contains 21 sections, 5 equations, 29 figures, 5 tables, 3 algorithms.

Figures (29)

  • Figure 1: Convex primitive decomposition on a complex non-manifold mesh with boundaries. Output primitives tightly adhere to the input, and is more efficient in simulation than convex hulls. To test performance, we drop spheres on each collider and measure frame times$^\downarrow$. Our approach has the closest simulation to the original mesh (i.e. balls in the stairwell), but with higher efficiency than CoACD or V-HACD shown in the plot, where x-axis indicates the frame number, y-axis indicates time taken. Green in our approach indicates a bounding box, yellow a cylinder, dark blue a trapezoidal prism, light blue a sphere, and red a capsule. For CoACD and V-HACD, colors are randomly assigned per convex component. Rendering artifacts on V-HACD are due to flipped faces. sin_nass.
  • Figure 2: Primitives supported in our approach. First, axes are computed as the eigendecomposition of a quadric, $a_z$ corresponds to the minimum eigenvalue's eigenvector, $a_x$ the max. These axes are then used to compute an oriented bounding box (OBB). The OBB's center $c$ and the axes are then used to fit all other primitives.
  • Figure 3: The Robot Vera model, tested in collision simulation by dropping 5000 spheres on top of it. A snapshot of our test simulation is shown on the right, with the model from our approach. Our approach is closer to the input model than CoACD, while having better performance as shown in the plot above. More model comparisons are in Fig. \ref{['fig:additional-sim-times']}. JohnMesplay.
  • Figure 4: Our approach decomposes the input mesh into a number of primitives which more closely adhere to the input mesh than CoACD, while allowing faster collision detection. Dark regions on the input mesh are due to overlapping non-manifold faces. Frame duration comparisons for simulation of collision with 5000 dropping balls are shown below; our approach has faster simulation than CoACD on all frames. Dixbit.
  • Figure 5: Our approach can cleanly preserve holes in the non-manifold, non-watertight input mesh, maintaining its traversability as shown by the number of balls that can pass through in the second row. Prior convex decomposition approaches reduce the size of holes due to voxelization and preprocessing needed to make the mesh manifold and watertight, changing the collision behavior of the output collider. Talaei-dev.
  • ...and 24 more figures