Quick-CULLIDE: Efficient Inter- and Intra- Object Collision Culling using Graphics Hardware Naga K. Govindaraju, Ming C. Lin, Dinesh Manocha University.

Slides:



Advertisements
Similar presentations
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware.
Advertisements

Complete Motion Planning
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Resolving Surface Collisions through Intersection Contour Minimization Pascal Volino Nadia Magnenat-Thalmann MIRALab, University of Geneva SIGGRAPH 2006.
2.1. C OLLISION D ETECTION Overview. Collision detection is used within many types of application, e.g. from robotics, through engineering simulations,
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
Visibility Culling using Hierarchical Occlusion Maps Hansong Zhang, Dinesh Manocha, Tom Hudson, Kenneth E. Hoff III Presented by: Chris Wassenius.
Proximity Computations between Noisy Point Clouds using Robust Classification 1 Jia Pan, 2 Sachin Chitta, 1 Dinesh Manocha 1 UNC Chapel Hill 2 Willow Garage.
Object-Space Visibility Culling Anthony Steed University College London Based upon material presented by Claudio T. Silva at Eurographics 1999 Slides,
Collision Detection for Deformable Models Huai-Ping Lee
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Fast C-obstacle Query Computation for Motion Planning Liang-Jun Zhang 12/13/2005 Liang-Jun Zhang 1 Young.
Collision Detection on the GPU Mike Donovan CIS 665 Summer 2009.
UNC Chapel Hill M. C. Lin References Collision Detection between Geometric Models: A Survey, by M. Lin and S. Gottschalk, Proc. of IMA Conference on Mathematics.
Self-Collision Detection and Prevention for Humonoid Robots Paper by James Kuffner et al. Jinwhan Kim.
Adapted from: CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Naga K. Govindaraju, Stephane.
Parallel Occlusion Culling for Interactive Walkthrough using Multiple GPUs Naga K Govindaraju, Avneesh Sud, Sun-Eui Yoon, Dinesh Manocha University of.
02/22/ Manocha Interactive Modeling and Simulation using Graphics Processors Dinesh Manocha University of North Carolina at Chapel Hill
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Continuous Collision Detection David Knott COMP 259 class presentation.
Interactive Shadow Generation in Complex Environments Naga K. Govindaraju, Brandon Lloyd, Sung-Eui Yoon, Avneesh Sud, Dinesh Manocha Speaker: Alvin Date:
Overview Class #10 (Feb 18) Assignment #2 (due in two weeks) Deformable collision detection Some simulation on graphics hardware... –Thursday: Cem Cebenoyan.
The FFT on a GPU Graphics Hardware 2003 July 27, 2003 Kenneth MorelandEdward Angel Sandia National LabsU. of New Mexico Sandia is a multiprogram laboratory.
Ray Tracing Dynamic Scenes using Selective Restructuring Sung-eui Yoon Sean Curtis Dinesh Manocha Univ. of North Carolina at Chapel Hill Lawrence Livermore.
CS 326 A: Motion Planning robotics.stanford.edu/~latombe/cs326/2004/index.htm Collision Detection and Distance Computation.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
Acceleration on many-cores CPUs and GPUs Dinesh Manocha Lauri Savioja.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Collision Detection for Deformable Objects Xin Huang 16/10/2007.
Efficient Distance Computation between Non-Convex Objects By Sean Quinlan Presented by Sean Augenstein and Nicolas Lee.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Geometric Computations on GPU: Proximity Queries Avneesh Sud &Dinesh Manocha.
CS 326A: Motion Planning ai.stanford.edu/~latombe/cs326/2007/index.htm Collision Detection and Distance Computation.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
1 A Hierarchical Shadow Volume Algorithm Timo Aila 1,2 Tomas Akenine-Möller 3 1 Helsinki University of Technology 2 Hybrid Graphics 3 Lund University.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Hidden Surface Removal
1 Occlusion Culling ©Yiorgos Chrysanthou, , Anthony Steed, 2004.
Afrigraph 2004 Massive model visualization Tutorial A: Part I Rasterization Based Approaches Andreas Dietrich Computer Graphics Group, Saarland University.
Database and Stream Mining using GPUs Naga K. Govindaraju UNC Chapel Hill.
Visibility Queries Using Graphics Hardware Presented by Jinzhu Gao.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Computer Graphics 2 Lecture 8: Visibility Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Interactive Geometric Computations using Graphics Processors Naga K. Govindaraju UNC Chapel Hill.
Collision and Proximity Queries Dinesh Manocha Department of Computer Science University of North Carolina
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Implementation II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Accelerated Stereoscopic Rendering using GPU François de Sorbier - Université Paris-Est France February 2008 WSCG'2008.
Implementation II.
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
Computer Graphics I, Fall 2010 Implementation II.
CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Presented by Marcus Parker By Naga K. Govindaraju,
01/28/09Dinesh Manocha, COMP770 Visibility Computations Visible Surface Determination Visibility Culling.
Hierarchical Occlusion Map Zhang et al SIGGRAPH 98.
Interactive Continuous Collision Detection for Polygon Soups Xin Huang 11/20/2007.
SHADOW CASTER CULLING FOR EFFICIENT SHADOW MAPPING JIŘÍ BITTNER 1 OLIVER MATTAUSCH 2 ARI SILVENNOINEN 3 MICHAEL WIMMER 2 1 CZECH TECHNICAL UNIVERSITY IN.
Fast Collision Detection for Deformable Models using Representative-Triangles Presented by Marcus Parker By Sean Curtis, Rasmus Tamstorf and Dinesh Manocha.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
Deformable Collision Detection
Real-Time Ray Tracing Stefan Popov.
Hybrid Ray Tracing of Massive Models
2.1. Collision Detection Overview.
References Additional lecture notes for 2/18/02.
Conservative Visibility Preprocessing using Extended Projections Frédo Durand, George Drettakis, Joëlle Thollot and Claude Puech iMAGIS-GRAVIR/IMAG-INRIA.
References Collision Detection between Geometric Models: A Survey, by M. Lin and S. Gottschalk, Proc. of IMA Conference on Mathematics of Surfaces 1998.
A Hierarchical Shadow Volume Algorithm
Kenneth Moreland Edward Angel Sandia National Labs U. of New Mexico
Collision Detection.
Deformable Collision Detection
Presentation transcript:

Quick-CULLIDE: Efficient Inter- and Intra- Object Collision Culling using Graphics Hardware Naga K. Govindaraju, Ming C. Lin, Dinesh Manocha University of North Carolina at Chapel Hill [IEEE VR 2005]

Introduction

Commonly used Alg.  Bounding volume hierarchies  Work well Object undergoing rigid motion  Challenge Non-rigid or deformable object Intra-object or self-collisions

Commonly used Alg. (GPU Based)  Increasingly used Check for overlaps Involve no pre-computation  Applicable to deformable and non- rigid models  However, Restricted to closed objects Do not check for self-collisions

Main Contributions  Similar to CULLIDE Uses visibility queries to compute a potentially colliding set (PCS)  Two major extensions Formulation generalization  For both inter- and intra-object Pruning and culling alg. improvement  To compute collision-free subsets

Feature  No assumptions about models  Low bandwidth requirements  Inter- and intra-object collision  Image-precision

Implementation environment  3.4GHz PC  NVIDIA GeForce FX 6800 Ultra card  Objects composed of 10K to 250K triangles

Related Work

Rigid Body Algorithms  Use spatial data structures  Include Spatial-partitioning structures Bounding-volume hierarchies  Built during the pre-processing stage and are used to accelerate run-time queries

Deformable Models and Cloth Simulation  Hierarchical data structures  Objects undergoing non-rigid motion  Fast update of hierarchies of axis- aligned bounding boxes (AABBs)  Also check for self-collisions

GPU-Based Algorithms  No pre-processing Suited for handling non-rigid motion  limited to closed objects or involve frame-buffer readbacks  Frame-buffer readbacks Slow on current graphics systems Involve graphics pipeline stalls Limited by the bandwidth to CPU

Hybrid Algorithms  Combine some of the benefits of the object-space approaches along with GPU-based accelerations  Heidelberger et al., 2003 Layer depth images (LDIs) Vertex-in-volume tests was extended to check for self- collisions between water-tight objects

Collision Culling Using Visibility Queries CULLIDE

Overview  Given n objects that are potentially colliding P 1,..., P n, CULLIDE performs the full-visibility tests and computes a potentially colliding set (PCS) of objects  The full visibility of P is a sufficient condition that P does not overlap with S

Algorithm  Begins with an empty frame buffer  First pass: Rasterize the primitives in the order P 1,..., P n and test if they are fully visible. In this pass, if a primitive P i is fully visible, then it does not intersect with any of the objects P 1,..., P i−1

Algorithm -cont’  Second pass: Perform the same operations as in the first pass but the order of rendering is changed to P n,.., P 1. In this pass, if a primitive P i is fully visible, then it does not intersect any of the objects P n,.., P i+1  Pruned if fully visible in both

Separating surface

Limitations  Self-collisions CULLIDE is based on the existence of a separating surface between the geometric primitives PCS is very conservative on meshes with connected triangles  Culling performance affects performance of the overall algorithm  Two novel alg. to overcome those

Collision Culling Using Visibility Queries Self-Collision Culling using GPUs

Possible Contacts  Touching Contacts Primitives touch each other at a point or an edge  Penetrating Contacts Primitives penetrate each other  Touching contacts often lead to robustness issues. Ignore.  Considers only the 2 nd Contacts

Self-Colliding  A geometric primitive P is not potentially penetrating with a set of rasterized geometric primitives if all the fragments generated by the rasterization of P have depth values less than or equal to those of the corresponding pixels in the frame buffer

Lemma 1 – to compute the PCS  Given n geometric primitives P 1, P 2,..., P n, a geometric primitive P i does not belong to the PCS of self-colliding primitives if it does not penetrate with P 1,.., P i−1, P i+1,..., P n, 1  i  n. This test can be easily decomposed as follows: a geometric primitive P i does not belong to the PCS of self-colliding primitives if it does not penetrate with P 1,.., P i−1 and with P i+1,..., P n, 1  i  n

Self-intersecting

Quick-CULLIDE Efficient Culling

Collision-free Sets  Improve the culling efficiency Remove redundant visibility computations  Improve rasterization performance Reduce the number of rendering opeartions  Reduce the number of pair-wise collision tests

PCS Object Classification  BFV Fully visible in both the passes Are pruned from the PCS  FFV Fully visible only in the first pass  SFV Fully visible only in the second pass  NFV Not fully visible in both the passes

Properties  The objects in each of these sets are ordered based on their rendering order in the first pass of the algorithm  BFV, FFV, SFV, and NFV are disjoint  Lemmas & Proofs are upcoming …

Lemma 2  FFV and SFV are collision-free sets

Proof  Let S denote the set FFV and be composed of objects {O 1 S,O 2 S,...O m S }. We now prove that no two objects O i S and O j S in S collide with each other. Without loss of generality, let i < j. Then, in the two-pass rendering algorithm, the object O i S is rendered prior to the object O j S. As the object O j S is fully visible with respect to O i S, using Lemma 1 in CULLIDE, we conclude that the two objects do not collide. Therefore, FFV is collision-free. The proof for S = SFV is collision-free is similar

Lemma 3  For each object O i  FFV, let S i = {O j, j > i, O j  S} where S = SFV ∪ NFV. If an object O i  FFV does not collide with S i, then it does not collide with any of the objects in SFV or NFV and can be pruned from the PCS

Proof  Follows from Lemma 1 in CULLIDE. This lemma implies that if an object O i  FFV and is fully visible in the second pass of the pruning algorithm, then it provides a sufficient condition to prune the object from the PCS

Lemma 4  For each object Oi  SFV, let S i = {O j, j < i, O j  S} where S = FFV ∪ NFV. If an object Oi  SFV does not collide with Si, then it does not collide with any of the objects in FFV or NFV and can be pruned from the PCS

Proof  Follows from Lemma 1 in CULLIDE. This lemma implies that if an object O i  SFV and is fully visible in the first pass of the pruning algorithm, then it provides a sufficient condition to prune the object from the PCS

Lemma 5  Let S 1 = FFV ∪ NFV be a set ordered by object indices in the increasing order and S 2 = SFV ∪ NFV be a set ordered by object indices in the decreasing order. In the two-pass rendering algorithm, if we perform the first pass using objects in S 1 and the second pass using objects in S 2, and an object O i is fully visible in both the passes, then it does not collide with any of the objects in FFV, SFV or NFV

Proof  Clearly the object O i belongs to NFV = S 1 ∩ S 2 as it is fully visible in both the passes. It is trivial to see that the object does not collide with any of the objects in NFV.  We now prove that the object does not collide with any object O j  FFV. If j < i, then O i does not collide with O j as O i is fully visible in the first pass. If j > i, then O j does not collide with O i as O j  FFV.  Similarly, we prove that the O i does not collide with the objects in SFV

QED  Using Lemmas 3, 4, and 5, it comes up with an efficient culling alg.  The first pass and second pass of CULLIDE are modified as follows …

First Pass  For each object O i in PCS, i=1,..,n If O i  SFV or O i  NFV, test whether the object is fully visible using an occlusion query If O i  FFV or O i  NFV, render the object into the frame buffer  For each object Oi in PCS, i=1,..,n If O i  SFV or O i  NFV, and the occlusion query determines O i as fully visible  If O i  SFV, then tag O i as a member of BFV  If O i  NFV, then tag O i as a member of FFV

Second Pass  For each object O i in PCS, i=n,..,1 If O i  FFV or O i  NFV, test whether the object is fully visible using an occlusion query If O i  SFV or O i  NFV, render the object into the frame buffer  For each object Oi in PCS, i=n,..,1 If O i  FFV or O i  NFV, and the occlusion query determines Oi as fully visible  If O i  FFV, then tag O i as a member of BFV  If O i  NFV, then tag O i as a member of SFV

Both the passes 1. Objects that are fully visible in both the passes This subset of objects belonging to NFV are pruned from the PCS (based on Lemma 5)

The first pass 2. Objects that are fully visible in the first pass NFV: These objects are removed from NFV and placed in FFV SFV: These objects are removed from the PCS (based on Lemma 4) FFV: Visibility computations are not performed for these objects in this pass as they are not needed

The second pass 3. Objects that are fully visible in the second pass NFV: These objects are removed from NFV and placed in SFV FFV: These objects are removed from the PCS (based on Lemma 3) SFV: Visibility computations are not performed for these objects in this pass as they are not needed

Improvement  The improved culling algorithm reduces the number of rendering operations and occlusion queries each by sizeof(FFV ∪ SFV ), as compared to CULLIDE

Collision Detection 1. Compute the PCS at the object level using this improved alg. Sweep-and-prune on the PCS to compute the overlapping pairs 2. Compute the PCS at the sub-object level and the overlapping pairs 3. Perform exact interference tests between the triangles on the CPU

Implementation

Cloth  20K tri., 21 ms/f; X, Z views

Breaking objects  35K,250K tri., 25 ms/f; 3 axes views

Non-rigid objects  25 ms/f; deformable leaves

Performance

Cloth Simulation

Performance

Factors  Depth complexity Depend upon the number of objects that project onto the screen-space  Order of rendering Back-to-front works best  Number of views # of Views increase, smaller PCS

Advantages  Self-collisions  Large number of objects  Not perform framebuffer readbacks  High image-space resolution  Just a few milliseconds (<40ms)  deformable, breaking, and non-rigid geometry, as well as polygon-soup models

Disadvantage  No overlap information or the extent of penetration  Limited to image resolution  Ignores touching contacts  Best when back-to-front rendering  Depends on object configurations and the depth complexity

Future Work  Provide proximity computations Including distance and penetration depth computation  Explore the new programmability features of GPUs