Collision Detection for Deformable Models Huai-Ping Lee

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

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Optimized Stencil Shadow Volumes
Collision Detection CSCE /60 What is Collision Detection?  Given two geometric objects, determine if they overlap.  Typically, at least one of.
Computer graphics & visualization Collisions. computer graphics & visualization Simulation and Animation – SS07 Jens Krüger – Computer Graphics and Visualization.
Presented by Konstantinos Georgiadis. Abstract This method extends the Hierarchical Radiosity approach for environments whose geometry and surface attributes.
Occlusion Culling Fall 2003 Ref: GamasutraGamasutra.
CSE 381 – Advanced Game Programming Scene Management
Visibility Culling. Back face culling View-frustrum culling Detail culling Occlusion culling.
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
FASTCD: Fracturing-Aware Stable Collision Detection Jae-Pil Heo 1, Joon-Kyung Seong 1, Duksu Kim 1, Miguel A. Otaduy 2, Jeong-Mo Hong 3, Min Tang 4, and.
1 Dr. Scott Schaefer Hidden Surfaces. 2/62 Hidden Surfaces.
Collision Detection CSE 191A: Seminar on Video Game Programming Lecture 3: Collision Detection UCSD, Spring, 2003 Instructor: Steve Rotenberg.
Bounding Volume Hierarchy “Efficient Distance Computation Between Non-Convex Objects” Sean Quinlan Stanford, 1994 Presented by Mathieu Brédif.
Scenegraph. Scenegraph Nodes - all implement a run function Leaf/Geo Nodes - typedefs of sgNode superclass –Poly Mesh A geo node that stores a list of.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Adapted from: CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Naga K. Govindaraju, Stephane.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Continuous Collision Detection David Knott COMP 259 class presentation.
Overview Class #10 (Feb 18) Assignment #2 (due in two weeks) Deformable collision detection Some simulation on graphics hardware... –Thursday: Cem Cebenoyan.
OBBTree: A Hierarchical Structure for Rapid Interference Detection Gottschalk, M. C. Lin and D. ManochaM. C. LinD. Manocha Department of Computer Science,
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
Haptic Cloth Rendering 6th Dutch-Belgian Haptics Meeting TUDelft, 21 st June 2006 Lode Vanacken Expertise centre for Digital Media (EDM) Hasselt University.
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Dynamic View-Dependent Simplification for Polygonal.
Bounding Volume Hierarchies and Spatial Partitioning Kenneth E. Hoff III COMP-236 lecture Spring 2000.
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Collision Detection for Deformable Objects Xin Huang 16/10/2007.
Apex Point Map for Constant-Time Bounding Plane Approximation Samuli Laine Tero Karras NVIDIA.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
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.
Collision Detection David Johnson Cs6360 – Virtual Reality.
Hidden Surface Removal
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
Culling Techniques “To cull” means “to select from group” In graphics context: do not process data that will not contribute to the final image The “group”
Fast Collision Detection for Deformable Models using Representative-Triangles Sean Curtis 1, Rasmus Tamstorf 2, & Dinesh Manocha 1 I3D 2008 February 15,
On a Few Ray Tracing like Algorithms and Structures. -Ravi Prakash Kammaje -Swansea University.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Image Synthesis Rabie A. Ramadan, PhD 1. 2 About my self Rabie A. Ramadan My website and publications
Quick-CULLIDE: Efficient Inter- and Intra- Object Collision Culling using Graphics Hardware Naga K. Govindaraju, Ming C. Lin, Dinesh Manocha University.
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Interactive Geometric Computations using Graphics Processors Naga K. Govindaraju UNC Chapel Hill.
CIS 350 – I Game Programming Instructor: Rolf Lakaemper.
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Chapter 11 Collision Detection 가상현실 입문 그래픽스 연구실 민성환.
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
Graphics Interface 2009 The-Kiet Lu Kok-Lim Low Jianmin Zheng 1.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
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.
Interactive Continuous Collision Detection for Polygon Soups Xin Huang 11/20/2007.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
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.
Bounding Volume Hierarchies and Spatial Partitioning
Optimized Continuous Collision Detection for Deformable Triangle Meshes Marco Hutter and Arnulph Fuhrmann WCSG’2007 – 30 January, 2007 – Plzen,
Bounding Volume Hierarchies and Spatial Partitioning
Deformable Collision Detection
Modeliranje kompleksnih modelov
Real-Time Ray Tracing Stefan Popov.
3D Object Representations
Parts of these slides are based on
CSCE 441: Computer Graphics Hidden Surface Removal
Collision Detection.
Deformable Collision Detection
David Johnson Cs6360 – Virtual Reality
Modeliranje kompleksnih modelov
Presentation transcript:

Collision Detection for Deformable Models Huai-Ping Lee

Differences in Deformable Models Collision and self-collisions –Self collisions are often neglected for rigid bodies Preprocessing –Data structure need to be updated frequently Performance –Efficiency is very important

Hybrid Approach [LAM01] Goal: adapt BVHs to handle deformable models efficiently Some modification in building and updating the tree –Efficiency of updating hierarchies is more important than the tightness of BVs AABBs are preferred

Hybrid Approach [LAM01] For a bottom-up update strategy using AABBs [vdB97], 8-ary tree version is 10 to 20 percent faster than binary version –Fewer nodes need to be updated (if using top- down approach) –Recursion depth during collision tests is lower

Hybrid Approach [LAM01] Bounding volume pre-processing –8-ary AABB tree built in top-down manner –A parent AABB is split along three axis to form eight child sub-volumes –No significant difference between ways of choosing split planes Center of the box or average point of all polygons

Hybrid Approach [LAM01] Run-time update –Hybrid of top-down and bottom-up updates –For a tree with depth n, initially update the n/2 first levels bottom-up. –During a collision traversal, update those non- updated nodes top-down as needed

Hybrid Approach [LAM01] Results for hard cases –All intersecting face pairs are reported

Hybrid Approach [LAM01] Results for simple cases –Only the first intersecting face pair is reported

Hybrid Approach [LAM01] Improved bounding volume hierarchies for deformable models –More efficient update Self-collisions are not considered

Lazy Update [MKE03] Another improvement to BVHs –Using k-DOPs –Build the tree top-down Also reported that 4-ary and 8-ary trees are better –Lazy update Re-inserts the vertices into the leaf k-DOPs and build internal nodes bottom-up Also want to detect self-collision

Lazy Update [MKE03] Knowing maximum velocity of the vertices, some BVs need not be updated –Parts of the hierarchy where vertices do not travel more than a distance b can be omitted during the hierarchy update for a time t = b / v, if proximities smaller than ε close – 2b is to be detected The BVs have been fattened by ε close / 2

Lazy Update [MKE03] BVHs are still inappropriate when detecting self-collisions –bounding boxes will always find contacts between adjacent sub-objects Test the BVH against itself? –Need to skip some tests between adjacent sub-surfaces –Previous solutions: [VMT94] and [Pro97] –This paper uses method in [Pro97]

Curvature Criterion [VMT94] If: There exists a vector V for which N.V > 0 at every point of S –And: The projection of C on a plane orthogonal to V along the direction of V has no self-intersections –Then: There are no self-collisions on the surface S.

Curvature Criterion [VMT94] For each sub-surface –Search for V –If V exists, test the projected region for self- intersection –If both succeeded, there is no self-intersection –Otherwise, check for self intersections in the sub-surface

Curvature Criterion [VMT94] V can be propagated bottom-up in the tree –Divide a sphere into 14 unit vectors –In each node, keep those vectors that have positive dot products with all the normals in the BV

Normal Cones [Pro97] In each BV, keep a cone representing a super set of normal directions Parent cones are easily computed from child cones –α =β/2 + max(α 1, α 2 ) If α ≧ π, check for self-intersection

Lazy Update [MKE03] Another way to improve hierarchy update Also detects self-intersection using normal cones Results –HU=Hierarchy Update, CT=Collision Test

Morphing of Tree [LAM03] Accelerate the special case in which models are deformed by mesh morphing –First establish the correspondence between geometric parts in reference models, assuming all models have the same number of vertices and mesh connectivity –Interpolate between these parts –The models in each frame are formed by linear blending the n reference models

Morphing of Tree [LAM03] Tree building (top-down) –Add one BV per node in the tree for each reference model –Namely, each node in the tree contain n BVs BVs are updated by blending the bounding volumes of corresponding sub-models –using the same weights for linear blending

Morphing of Tree [LAM03] Experiment—three reference models

Morphing of Tree [LAM03] Compared with hybrid method [LAM01]

Image-Space Techniques Work with 2D or 3D discretized representation of objects –Do not perform exact collision detection due to discretization error Make use of graphics hardware –Have to worry about bandwidth to and from graphics card Too many read-backs of buffers (depth, color, stencil) will make it slower than using only CPU

Layered Depth Image (LDI) Decomposition [HTG03] Use discretized 3D representation to accelerate collision detection –Look like this:

Layered Depth Image (LDI) Decomposition [HTG03] Stage 1: Compute AABB intersection for a pair of objects (Volume-of-Intersect, VoI) Stage 2: Compute the two LDIs restricted to the VoI –like scan-line conversions

Layered Depth Image (LDI) Decomposition [HTG03] How to compute LDIs? –Render a 2D projection for each depth value –Like scan-conversions Need to read back the rendered image from frame buffer –For simple environment, graphics hardware version runs slower than CPU version

Layered Depth Image (LDI) Decomposition [HTG03] Stage 3: Perform the actual collision detection –(3a) Count the overlapping “pixels” –(3b) Check if vertices of an object are in another object’s volume

Layered Depth Image (LDI) Decomposition [HTG03] Results—using intersection volume (3a) –Depth complexity is the number of layers in LDI

Layered Depth Image (LDI) Decomposition [HTG03] Results—using vertex-in-volume –Times for LDI generation for entire objects

Layered Depth Image (LDI) Decomposition [HTG03] Does not need much pre-computation Can also detect self-collision –By labeling “entry” & “leaving” points explicitly Accuracy is related to the resolution of LDI Restricted to water-tight models –Otherwise the “scan-conversion” will fail Need buffer read-backs –Use graphics hardware for complex scenes!

CULLIDE [GRLM03] A solution to N-body problem Does not use 3D discretized representation of the models –Only use visibility queries Cull those objects that cannot be colliding –Keep a potentially colliding set (PCS) –For large environment

CULLIDE [GRLM03] Given an environment composed of n objects, O 1, O 2, …, O n –If O i is fully-visible with respect to all other objects, then O i cannot collide with any other object, thus is not in PCS Choose three axis to perform orthogonal projection –The second pass tests visibility of sub-objects in a similar manner Only test those still in the PCS after first pass

CULLIDE [GRLM03] Final step –The primitives remaining in the PCS are tested with exact collision detection methods Results 100 deforming cylinders100 cylinders * 200 polygons

CULLIDE [GRLM03] Visibility query done by graphics hardware –Does not need to read back buffers Accuracy governed by image resolution –Errors can be overcome by “fattened” representation [GLM04] Does not need pre-computation Suitable for any polygonal mesh, large scene Cannot be used for self-collision –Adjacent faces cannot be culled –Need decomposition of the mesh?

Chromatic Decomposition [Govindaraju et al. 05] Modify CULLIDE to handle self-collision –transforms self-collision detection into pair-wise N- body CD between non-adjacent primitives –Decompose the mesh into k independent sets S 1,…,S k –For every pair of independent set, (S i, S j ), ensure each primitive in S i has only one adjacent primitive that is in S j To simplify the adjacency Building a corresponding graph G, and decompose it with graph coloring

Graph Coloring [Govindaraju et al. 05] Construct a graph G = (V, E) Each primitive p i correspond to a vertex V(p i ) in V Add an edge (V(p l ), V(p m )) to E if –Primitives p l and p m are vertex-adjacent –There exists primitive p in the mesh that is adjacent to both p l and p m Ensures each primitive in S i has only one adjacent primitive that is in S j

Graph Coloring [Govindaraju et al. 05] Each node is given a color that is different from its neighbors in graph G Nodes with the same color forms an independent set Each independent set has a PCS

Reordering [Govindaraju et al. 05] Consider each pair S i and S j, compute pairs of adjacent primitives between them –Give the adjacent primitives the same index

Collision Culling [Govindaraju et al. 05] Collision culling using AABB tree –Test the tree against itself –Ignore overlaps with adjacent primitives here 2.5D test: build PCS for each set –1st pass: traverse the primitives in S i from last to first Test if p i m is fully-visible against previously rendered primitives in S i and S j, namely p i >m & p j >m –2nd pass: traverse the primitives from first to last, namely test p i m against p i <m & p j <m

GPU Culling [Govindaraju et al. 05]

AABB Culling vs. GPU culling [Govindaraju et al. 05] Results of culling

Exact Tests [Govindaraju et al. 05] For the primitives left in the PCS, perform exact intersection tests on non-adjacent primitives –Merge the PCS of all independent sets –Use AABB tree to test these primitives first For adjacent primitives, perform elementary EE and VF tests, but do not test the shared edge or vertex

Benchmarks [Govindaraju et al. 05] More than 23K triangles ms during each step 13K triangles ms during each step 32,500 triangles each curtain 100ms for each curtain Path planning for a deformable object 60-90ms

Comparison [Govindaraju et al. 05]

Chromatic Decomposition [Govindaraju et al. 05] Transform self-collision detection into N- body collision detection by decomposing the mesh Use BVHs and image-space technique to do collision culling –Utilize graphics hardware

Conclusion BVHs are still an important tool for collision detection for deformable objects –Need to optimize update procedure Self-collision can be culled –Curvature criterion (object space) –Decompose into independent set Image-space techniques can be accelerated by graphics hardware –But accuracy is limited by discretization –Can still be powerful for culling, followed by object- space exact collision detection

Reference Lin, M. C., and Manocha, D Collision and proximity queries. In Handbook of Discrete and Computational Geometry, 2nd Ed., J. E. Goodman and J. O'Rourke, Eds. CRC Press LLC, Boca Raton, FL, ch. 35, Teschner, M., Kimmerle, S., Heidelberger, B., Zachmann, G., Raghupathi, L., Fuhrmann, A., Cani, M.-P., Faure, F., Magnenat- Thalmann, N., Strasser, W., and Volino, P Collision detection for deformable objects. Computer Graphics Forum Larsson T., Akenine-Möller T Collision detection for continuously deforming bodies. In Eurographics, pp. 325–333. short presentation. Larsson T., Akenine-Möller T Efficient collision detection for models deformed by morphing. The Visual Computer 19, 2 (May2003), 164–174.

Reference Mezger J., Kimmerle S., Etzmuss O Hierarchical Techniques in Collision Detection for Cloth Animation. Journal of WSCG 11, 2, 322–329. Volino P., Magnenat-Thalmann N Efficient Self- Collision Detection on Smoothly Discretized Surface Animations using Geometrical Shape Regularity. Computer Graphics Forum 13, 3, 155–166. Provot, X Collision and Self-Collision Handling in Cloth Model Dedicated to Design Garments. In Graphics Interface ’97 (May 1997), Canadian Information Processing Society, Canadian Human-Computer Communications Society, pp. 177–189.

Reference Heidelberger, B., Teschner, M., and Gross, M Real-time volumetic intersections of deforming objects. Proc. of Vision, Modeling and Visualization. Govindaraju, N., Redon, S., Lin, M. C., and Manocha, D CULLIDE: Interactive Collision Detection between Complex Models in Large Environments using Graphics Hardware. Proc. of Eurographics/SIGGRAPH Workshop on Graphics Hardware Govindaraju, N., Knott, D., Jain, N., Kabul, I., Tamstorf, R., Gayle, R., Lin, M. C., and Manocha, D Interactive Collision Detection between Deformable Models using Chromatic Decomposition. Proc. of ACM SIGGRAPH.