390 likes | 542 Views
Some techniques to Speed up Collision Detection. Yalmar Ponce Atencio LCG/PESC/COPPE. Problem. Given a large environment with moving objects, Detect overlapping objects Overlapping triangles in each pair. Goal. Interactive collision detection between complex objects
E N D
Some techniques to Speed up Collision Detection Yalmar Ponce Atencio LCG/PESC/COPPE
Problem • Given a large environment with moving objects, • Detect overlapping objects • Overlapping triangles in each pair
Goal Interactive collision detectionbetween complex objects • Large number of objects • High primitive count • Non-convex objects • Open and closed objects • Deformable objects • Changing topology
Related Work • Collision detection • Hardware accelerated techniques • Object space techniques • Two phases • Broad phase – Compute object pairs in close proximity • Narrow phase – Check each pair for exact collision detection
Related Work • Broad phase • Spatial partitioning • Sweep-and-prune • Narrow phase • Spatial partitioning • Bounding volume hierarchies Surveys [Klosowski 1998, Lin and Manocha 2003, Redon et al. 2002, Andrew Nealen et al. 2005]
Limitations of Object-space Techniques • Considerable pre-processing • Hard to achieve real-time performance on complex deformable models
Collision Detection using Graphics Hardware • Primitive rasterization – sorting in screen-space • Interference tests • NV_OCCLUSION_QUERY • Requires high screen resolution
Image Space Techniques Use of graphics hardware • CSG rendering [Goldfeather et al. 1989, Rossignac et al. 1990] • Interferences and cross-sections [Baciu et al. 1998, Myszkowski 1995, Rossignac et al. 1992, Shinya and Forgue 1991] • Virtual Surgery [Lombardo et al. 1999] • Minkowski sums [Kim et al. 2001] • Cloth animation [Vassilev et al. 2001] • Proximity computation [Hoff et al. 2001, 2002] • CULLIDE, R-CULLIDE, Q-CULLIDE[Govindaraju et al. 2003-2005]
Limitations of Current Approaches • Closed models • Frame buffer readbacks – slow
Outline • Overview • Pruning Algorithm • HashedOctree • Implementation and Results • Conclusions and Future Work
Outline • Overview • Pruning Techniques • HashedOctree • Implementation and Results • Conclusions and Future Work
Overview • Potentially Colliding Set (PCS) computation • Exact collision tests on the PCS using a HashedOctree
GPU based PCS computation Using CPU Technique Object LevelPruning Sub-objectLevelPruning Exact Tests
Potentially Colliding Set (PCS) Scene PCS
Outline • Overview • Pruning Techniques • HashedOctree • Implementation and Results • Conclusions and Future Work
Pruning Techniques • Occlusion queries • Back-face culling • Convex models • View volume culling • glSelectBuffer()
View volume culling • Using AABBs
B A Improvements • Using OBBs • Transform B for A orientation • Use OBBB as cliping planes • PCSB
Outline • Overview • Pruning Techniques • HashedOctree • Implementation and Results • Conclusions and Future Work
101 10101 10111 111 11101 1111 10100 10110 11100 11110 100 11001 110 11011 11000 11010 Octree x HashedOctree • Creation • Hierarchical • Recursively • Hash [N.A.Gumerov et al. 2003] • From hierarchical Octree or Using a generated Key • Key is generated from parent nodes • Hash table uses k mod 2b (b last bits) 1
Search in Octree • Hierarchical • recursive p
Search in HashedOctree • Direct access • Using key node p
Outline • Overview • Pruning Techniques • HashedOctree • Implementation and Results • Conclusions and Future Work
HashedOctree • Morton key • Generated recursively • Key is computed using Interleaving • k(n) = xlylzlxl-1yl-1zl-1…x1y1z1 • lis the level of the octree • Interleaving is achieved by “OR”ing
Potentially Colliding Setx HashedOctree • Each object have a HashedOctree • PCSB = trgls_in(OBBA OBBB) • Exact test • PCSB x HashedOctreeA B A
Algorithm CSA = CSB = foreach (tB in PCSB){ PCSA = foreach (p in tB) PCSA HashedOctreeA.searchElems(p) if (PCSA ) foreach (tA in PCSA) if (tAtB){ CSA tA CSB tB } }
Outline • Overview • Pruning Techniques • HashedOctree • Implementation and Results • Conclusions and Future Work
Conclusions and Future Work • Conclusions • Earlier image based collision detection approaches present some limitations (Screen Resolution). • Object level Pruning and Sub-object pruning are required. • Hashed Octree reduces a query up to 80% over hierarchical Octree. • Future Work • Geometric models can be mapped efficiently on images (Geometry Images). • Geometry images allow to generate Octrees and volume hierarchies in real-time on current GPUs.
101 10101 10111 111 11101 1111 10100 10110 11100 11110 100 110 11001 11011 11000 11010 1