Elsevier

Computers & Graphics

Volume 31, Issue 1, January 2007, Pages 5-14
Computers & Graphics

Fast continuous collision detection among deformable models using graphics processors

https://doi.org/10.1016/j.cag.2006.09.005Get rights and content

Abstract

We present an interactive algorithm to perform continuous collision detection between general deformable models using graphics processors (GPUs). We model the motion of each object in the environment as a continuous path and check for collisions along the paths. Our algorithm precomputes the chromatic decomposition for each object and uses visibility queries on GPUs to quickly compute potentially colliding sets of primitives. We introduce a primitive classification technique to perform efficient continuous self-collision. We have implemented our algorithm on a 3.0 GHz Pentium IV PC with a NVIDIA 7800 GPU, and we highlight its performance on complex simulations composed of several thousands of triangles. In practice, our algorithm is able to detect all contacts, including self-collisions, at image-space precision in tens of milli-seconds.

Introduction

The problem of collision detection (CD) arises in modeling, simulation and interaction for many different areas, including virtual reality (VR), cloth simulation, haptic rendering, animation, rapid prototyping, CAD/CAM, robotics, and entertainment. In this paper, we primarily focus on CD over a given time period between deformable objects that includes inter-object collisions between disjoint objects and intra-object collisions (or self-collisions) within each deformable model. Most of the earlier work in CD has been restricted to CD at discrete time instances and these algorithms may not check for possible overlaps between successive time steps. As a result, it is possible to miss a collision and result in visual artifacts, inconsistent state, or incorrect simulation that can significantly affect the sense of immersion and lead to break in presence (BIP) in a virtual environment (VE). Such problems can be especially challenging in environments composed of thin or fast moving objects, like cloth on virtual avatars.

In order to overcome the limitations of discrete CD algorithms, different techniques have been proposed that model the motion between successive time instances as a continuous path and check for collisions along these paths. These are classified as continuous collision detection (CCD) algorithms [1], [2], [3], [4], [5]. However, current CCD algorithms are only able to handle rigid objects, articulated models, or simple deformable meshes (consisting of only a few hundreds of polygons) at interactive rates.

Main results: We present a novel algorithm to perform CCD between general deformable models at interactive rates using commodity graphics processing units (GPUs). Our approach is general and makes no assumption about object motion. Each object is represented as a triangulated mesh and we assume that the mesh connectivity does not change during the simulation. We model the continuous motion using a piecewise linear motion between successive discrete instances and check for collisions between the resulting swept volumes (SVs).

Our algorithm precomputes an improved chromatic decomposition [6] for each object and decomposes the problem into checking for overlap between adjacent and non-adjacent primitives. We extend the Quick-CULLIDE collision culling algorithm [7], which performs collisions at discrete time instances, to check for collisions between the SVs of non-adjacent primitives. In order to achieve high-culling efficiency, we classify the adjacent primitives into vertex-adjacent and edge-adjacent primitives. We pair the edge-adjacent primitives to reduce the number of penetrating contacts, as well as lowering the number of pairwise tests. Based on this decomposition, our algorithm directly checks for inter- and intra-object collisions and does not need to perform any special processing. The overall accuracy of our algorithm is governed by image-space resolution used to perform visibility queries (or 2.5D overlap tests) on the GPUs.

We have implemented the algorithm on a 3.0 GHz PC with a NVIDIA 7800 GPU and applied to complex cloth simulation benchmarks consisting of thousands of triangles. We are able to check for all collisions between the discrete time instances at 10–15 frames per second at 1000×1000 image-space resolution, enabling real-time CCD for high-resolution deformable meshes with challenging contact scenarios in VEs. As compared to earlier work [6], [7], our approach offers the following advantages:

  • High culling efficiency using tight bounding SV representations for the mesh primitives.

  • Interactive performance using an improved mesh decomposition scheme and a novel primitive classification technique, resulting in fewer false positives.

Organization: The rest of the paper is organized as follows. In Section 2, we briefly review the prior work on CCD and GPU-based CD algorithms. We give an overview of our approach in Section 3 and describe our primitive classification scheme. We present our algorithm in Section 4 and describe its implementation and performance on complex benchmarks in Section 5. We analyze its performance in Section 6 and highlight some of its limitations.

Section snippets

Related work

The problem of CD has been extensively studied in the literature. A good overview of different algorithms is available in some recent surveys [8], [9], [10]. In this section, we give a brief survey of earlier work related to CCD, GPU-based methods and CD between deformable models.

Overview

In this section, we give an overview of our CCD algorithm. We first formulate the problem of CCD among general deformable models. We present a novel classification algorithm to perform fast continuous collision culling between general deformable models.

Interactive continuous collision detection

In this section, we present our multi-stages CD algorithm. We first describe the pre-processing phase followed by the runtime algorithm.

Implementation and results

We have implemented our algorithm on a Pentium IV PC with 2 GB memory and NVIDIA GeForce 7800 GTX GPU. We use the OpenGL API under Windows XP and GL_NV_occlusion_query for performing the full visibility queries asynchronously. We improve the rendering performance by storing the mesh vertices using the GL_vertex_buffer_object extension on the GPU. We are able to achieve a throughput of 20 million triangles per second. We use an image resolution of 1000×1000 for collision computations, and used

Analysis

In this section, we analyze the performance of our algorithm. This includes the culling efficiency and different factors that govern the overall performance.

Conclusions and future work

We have presented an interactive continuous collision detection algorithm for general deformable meshes in virtual environments. We decompose the problem into adjacent and non-adjacent collision detection. The algorithm takes advantages of primitive connectivity information to perform efficient collision culling between bounding swept volumes to ensure no collision is missed between time steps. The collision culling is performed using 2.5D queries on the GPUs. It is able to check for

Acknowledgments

This research is supported in part by ARO Contract DAAD 19-02-1-0390, and W911NF-04-1-0088, NSF Awards 0400134, 0118743, DARPA and RDECOM Contract N61339-04-C-0043 and Intel Corporation. We thank the UNC GAMMA group for many useful discussions and support. We are also grateful to the reviewers for their feedback.

References (41)

  • J.F. Canny

    Collision detection for moving polyhedra

    IEEE Transactions on PAMI

    (1986)
  • Redon S, Kheddar A, Coquillart S. An algebraic solution to the problem of collision detection for rigid polyhedral...
  • Knott D, Pai DK. CInDeR: collision and interference detection in real-time using graphics hardware. Proceedings of...
  • Redon S, Kim YJ, Lin MC, Manocha D. Fast continuous collision detection for articulated models. In: Proceedings of ACM...
  • Redon S, Kim YJ, Lin MC, Manocha D. Interactive and continuous collision detection for avatars in virtual environments....
  • N. Govindaraju et al.

    Collision detection between deformable models using chromatic decomposition

    ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH)

    (2005)
  • Govindaraju N, Lin M, Manocha D. Quick-CULLIDE: efficient inter- and intra-object collision culling using GPUs....
  • C. Ericson

    Real-time collision detection

    (2004)
  • Teschner M, Manocha D, Heidelberger B, Govindaraju N, Zachmman G, Mezger J, et al. Collision handling in dynamic...
  • Lin M, Manocha D, Collision and proximity queries. In: Handbook of discrete and computational geometry,...
  • Abdel-Malekl K, Blackmore D, Joy K. Swept volumes: foundations, perspectives, and applications. International Journal...
  • Redon S, Kheddar A, Coquillart S. Fast continuous collision detection between rigid bodies. Proceedings of Eurographics...
  • Schwarzer F, Saha M, Latombe J-C. Exact collision checking of robot paths. In: Workshop on algorithmic foundations of...
  • Agarwal PK, Basch J, Guibas LJ, Hershberger J, Zhang L. Deformable free space tiling for kinetic collision detection....
  • Kim B, Rossignac J. Collision prediction for polyhedra under screw motion. Symposium on Solid Modeling and...
  • Wong WS-K, Baciu G. A randomized marking scheme for continuous collision detection in simulation of deformable...
  • Bridson R, Fedkiw R, Anderson J. Robust treatment for collisions, contact and friction for cloth animation. Proceedings...
  • DeRose T, Kass M, Truong T. Subdivision surfaces in character animation. Proceedings of ACM SIGGRAPH 1998;...
  • Pelechano N, Bull L, Slater M. Fast collision detection between cloth and a deformable human body. Technical report,...
  • J. Mezger et al.

    Hierarchical techniques in cloth detection for cloth animation

    Journal of WSCG

    (2003)
  • Cited by (0)

    View full text