Fast Collision Culling in Large-Scale Environments Using GPU Mapping Function

This paper presents a novel and efficient GPU-based parallel algorithm to cull non-colliding object pairs in very large-scale dynamic simulations. It allows to cull objects in less than 25ms with more than 100K objects. It is designed for many-core GPU and fully exploits multi-threaded capabilities and data-parallelism. In order to take advantage of the high number of cores, a new mapping function is defined that enables GPU threads to determine the objects pair to compute without any global memory access. These new optimized GPU kernel functions use the thread indexes and turn them into a unique pair of objects to test. A square root approximation technique is used based on Newton's estimation, enabling the threads to only perform a few atomic operations. A first characterization of the approximation errors is presented, enabling the fixing of incorrect computations. The I/O GPU streams are optimized using binary masks. The implementation and evaluation is made on largescale dynamic rigid body simulations. The increase in speed is highlighted over other recently proposed CPU and GPU-based techniques. The comparison shows that our system is, in most cases, faster than previous approaches.

[1]  Dinesh Manocha,et al.  gProximity: Hierarchical GPU‐based Operations for Collision and Distance Queries , 2010, Comput. Graph. Forum.

[2]  Carla Maria Dal Sasso Freitas,et al.  Broad-phase collision detection using semi-adjusting BSP-trees , 2005, I3D '05.

[3]  Dinesh Manocha,et al.  Multi-core collision detection between deformable models , 2009, Symposium on Solid and Physical Modeling.

[4]  Gino van den Bergen Efficient Collision Detection of Complex Deformable Models using AABB Trees , 1997, J. Graphics, GPU, & Game Tools.

[5]  Dinesh Manocha,et al.  OBBTree: a hierarchical structure for rapid interference detection , 1996, SIGGRAPH.

[6]  Gabriel Zachmann,et al.  Collision Detection for Deformable Objects , 2004, Comput. Graph. Forum.

[7]  Ming C. Lin,et al.  Collision Detection between Geometric Models: A Survey , 1998 .

[8]  Mark H. Overmars,et al.  Point Location in Fat Subdivisions , 1992, Inf. Process. Lett..

[9]  Philip M. Hubbard,et al.  Collision Detection for Interactive Graphics Applications , 1995, IEEE Trans. Vis. Comput. Graph..

[10]  Dinesh K. Pai,et al.  CInDeR: Collision and Interference Detection in Real-time using graphics hardware , 2003, Graphics Interface.

[11]  Samuel R. Buss,et al.  Efficient Large-Scale Sweep and Prune Methods with AABB Insertion and Removal , 2009, 2009 IEEE Virtual Reality Conference.

[12]  Dinesh Manocha,et al.  Collision-streams: fast GPU-based collision detection for deformable models , 2011, SI3D.

[13]  Brian Mirtich,et al.  Efficient Algorithms for Two-Phase Collision Detection , 1997 .

[14]  Bruno Arnaldi,et al.  Dynamic adaptation of broad phase collision detection algorithms , 2011, 2011 IEEE International Symposium on VR Innovation.

[15]  Bernhard Thomaszewski,et al.  Parallel techniques for physically based simulation on multi-core processor architectures , 2008, Comput. Graph..

[16]  Lixu Gu,et al.  Hierarchical Spatial Hashing for Real-time Collision Detection , 2007, IEEE International Conference on Shape Modeling and Applications 2007 (SMI '07).

[17]  Jaehyuk Huh,et al.  HPCCD: Hybrid Parallel Continuous Collision Detection using CPUs and GPUs , 2009, Comput. Graph. Forum.

[18]  Dinesh Manocha,et al.  I-COLLIDE: an interactive and exact collision detection system for large-scale environments , 1995, I3D '95.

[19]  Daniel Thalmann,et al.  An Adaptive Spatial Subdivision of the Object Space for Fast Collision Detection of Animated Rigid Bodies , 1995, Comput. Graph. Forum.

[20]  Takahiro Harada,et al.  Real-time collision culling of a million bodies on graphics processing units , 2010, ACM Trans. Graph..

[21]  Dinesh Manocha,et al.  Quick-CULLIDE: fast inter- and intra-object collision culling using graphics hardware , 2005, IEEE Proceedings. VR 2005. Virtual Reality, 2005..

[22]  Chen Tang,et al.  Fast continuous collision detection using parallel filter in subspace , 2011, SI3D.

[23]  François Faure,et al.  Interactive Physical Simulation on Multicore Architectures , 2009, EGPGV@Eurographics.

[24]  Wolfgang Straßer,et al.  Fast and Scalable CPU/GPU Collision Detection for Rigid and Deformable Surfaces , 2010, Comput. Graph. Forum.

[25]  Sung-Eui Yoon,et al.  PCCD: parallel continuous collision detection , 2009, SIGGRAPH '09.

[26]  Dinesh Manocha,et al.  CULLIDE: interactive collision detection between complex models in large environments using graphics hardware , 2003, HWWS '03.