Download presentation
Presentation is loading. Please wait.
1
Adapted from: CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Naga K. Govindaraju, Stephane Redon, Ming C. Lin, Dinesh Manocha University of North Carolina at Chapel Hill
2
Collision Handling Contact and collision between objects and between interactive tools with objects Non-trivial to simulate collision, main problems are Automatically report when collision happens After collision detection, objects response in a natural way
3
Collision Handling A wide range of techniques are used in collision detection on geometric models Hierarchical trees formed with bounding boxes or spheres for efficient detect in different levels Penetration depth should be reported to the handling process The research issue for computational geometry and algorithms
4
Problem Given a large environment with moving objects, Compute overlapping objects Overlapping triangles in each pair
5
Goal Interactive collision detection between complex objects Large number of objects High primitive count Non-convex objects Open and closed objects
6
Non-rigid Motion Deformable objects Changing topology
7
Real-time Collision Detection using our Approach Complex breaking objects on a NVIDIA GeForce FX5800 Ultra GPU
8
Related Work Object space techniques Two phases Broad phase – Compute object pairs in close proximity Narrow phase – Check each pair for exact collision detection
9
Limitations of Object-space Techniques Considerable pre-processing Hard to achieve real-time performance on complex deformable models
10
Collision Detection using Graphics Hardware Primitive rasterization – sorting in screen-space Interference tests
11
Outline Overview Pruning Algorithm Implementation and Results Conclusions and Future Work
12
Outline Overview Pruning Algorithm Implementation and Results Conclusions and Future Work
13
Overview Potentially Colliding Set (PCS) computation Exact collision tests on the PCS
14
Algorithm Object Level Pruning Sub-object Level Pruning Exact Tests GPU based PCS computation Using CPU
15
Potentially Colliding Set (PCS) PCS
16
Potentially Colliding Set (PCS) PCS
17
Outline Problem Overview Overview Pruning Algorithm Implementation and Results Conclusions and Future Work
18
Algorithm Object Level Pruning Sub-object Level Pruning Exact Tests
19
Visibility Computations Lemma 1: An object O does not collide with a set of objects S if O is fully visible with respect to S Utilize visibility for PCS computation
20
set S Collision Detection using Visibility Computations Fully Visible Object O
21
PCS Pruning Lemma 2: Given n objects O 1,O 2,…,O n, an object O i does not belong to PCS if it does not collide with O 1,…,O i-1,O i+1,…,O n Prune objects that do not collide
22
PCS Pruning O 1 O 2 … O i-1 O i O i+1 … O n-1 O n
23
PCS Pruning O 1 O 2 … O i-1 O i
24
PCS Pruning O i O i+1 … O n-1 O n
25
PCS Computation Each object tested against all objects but itself Naive algorithm is O(n 2 ) Linear time algorithm Uses two pass rendering approach
26
PCS Computation: First Pass O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Render
27
PCS Computation: First Pass Fully Visible? Render O1O1
28
PCS Computation: First Pass Fully Visible? Render O 1 O 2 Yes. Does not collide with O 1
29
O 1 O 2 … O i-1 O i PCS Computation: First Pass Fully Visible? Render Yes. Does not collide with O 1,O 2,…,O i-1
30
PCS Computation: First Pass O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Render Fully Visible?
31
PCS Computation: Second Pass O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Render O n
32
PCS Computation: Second Pass Render Fully Visible? O n
33
PCS Computation: Second Pass Render Fully Visible? O n-1 O n Yes. Does not collide with O n
34
PCS Computation: Second Pass Render Fully Visible? O i O i+1 … O n-1 O n Yes. Does not collide with O i+1,…,O n-1,O n
35
PCS Computation: Second Pass Render Fully Visible? O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Yes. Does not collide with O 1,…,O n-1,O n
36
PCS Computation O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Fully Visible
37
PCS Computation O 1 O 2 O 3 … O i-1 O i O i+1 … O n-2 O n-1 O n O 1 O 3 … O i-1 O i+1 … O n-1
38
Example O1O1 O2O2 O3O3 O4O4 Scene with 4 objects O 1 and O 2 collide O 3, O 4 do not collide Initial PCS = { O 1,O 2,O 3, O 4 }
39
O3O3 O1O1 First Pass O2O2 Order of rendering: O 1 O 4 O3O3 Fully Visible O1O1 O4O4 O4O4 Not Fully Visible
40
Second Pass O1O1 O3O3 O2O2 O2O2 Fully Visible Order of rendering: O 4 O 1 O4O4 O4O4 Fully Visible O3O3 Not Fully Visible
41
After two passes O1O1 O2O2 O3O3 O4O4 Fully Visible
42
Potential Colliding Set O1O1 O2O2 PCS ={O 1,O 2 }
43
Algorithm Object Level Pruning Sub-object Level Pruning Exact Tests
44
Overlap Localization Each object is composed of sub- objects We are given n objects O 1,…,O n Compute sub-objects of an object O i that overlap with sub-objects of other objects
45
Overlap Localization Our solution Test if each sub-object of O i overlaps with sub-objects of O 1,..O i-1 Test if each sub-object of O i overlaps with sub-objects of O i+1,...,O n Linear time algorithm Extend the two pass approach
46
Overlap Localization O 1 O 2 … O i-1 O i O i+1 … O n-1 O n PCS Sub-objects
47
Overlap Localization: First Pass O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Render sub-objects
48
Overlap Localization: First Pass O 1 O 2 … O i-1 O i Rendered sub-objects Render sub-objects
49
Overlap Localization: First Pass O 1 O 2 … O i-1 Fully Visible? Rendered sub-objects Render sub-objects
50
Overlap Localization: First Pass O 1 O 2 … O i-1 Fully Visible? Rendered sub-objects Render sub-objects
51
Overlap Localization: First Pass Rendered sub-objects O 1 O 2 … O i-1 Fully Visible? Yes. Does not collides with sub-objects of O 1,O 2,…,O i-1 Render sub-objects
52
Overlap Localization: First Pass Rendered sub-objects O 1 O 2 … O i-1 Fully Visible? Avoids self-collisions! Render sub-objects
53
Overlap Localization: First Pass O 1 O 2 … O i-1 O i Rendered sub-objects Render sub-objects
54
Overlap Localization: First Pass O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Rendered sub-objects
55
Overlap Localization: Second Pass O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Render sub-objects
56
Overlap Localization O 1 O 2 … O i-1 O i O i+1 … O n-1 O n Sub-objects
57
Potential Colliding Set O1O1 O2O2 PCS = {O 1,O 2 }
58
O1O1 Sub-objects O2O2 PCS = sub-objects of {O 1,O 2 }
59
First Pass Rendering order: Sub-objects of O 1 O 2
60
Fully Visible First Pass
61
Fully Visible First Pass
62
Fully Visible Not Fully Visible First Pass
63
Fully Visible First Pass
64
Fully Visible First Pass
65
Fully Visible First Pass
66
Second Pass Rendering order: Sub-objects of O 2 O 1
67
Fully Visible Second Pass
68
Fully Visible Second Pass
69
Fully Visible Second Pass
70
Not Fully Visible Fully Visible Second Pass
71
Fully Visible Second Pass
72
Fully Visible After two passes
73
PCS
74
Algorithm Object Level Pruning Sub-object level Pruning Exact Tests Exact Overlap tests using CPU
75
Visibility Queries We require a query Tests if a primitive is fully visible or not Current hardware supports occlusion queries Test if a primitive is visible or not
76
Visibility Queries Depth function GEQUALLESS All fragments Pass FailPass Fail PassFailPassFail Query not supported Occlusion query Examples - HP_Occlusion_test, NV_occlusion_query
77
Bandwidth Analysis Read back only integer identifiers Independent of screen resolution
78
Optimizations Use object bounding volume Use orthographic views for pruning
79
Outline Overview Pruning Algorithm Implementation and Results Conclusions and Future Work
80
Implementation Dell Precision workstation Dell M50 Laptop
81
Test Models: Environment 1 100 deforming cylinders Total – 20K triangles
82
Test Models: Environment 2 Deforming torii Each torus – 20K triangles
83
Test Model: Environment 3 250K Dragon 35K Bunny
84
Test Model: Environment 4 Breaking dragon – 250K triangles Bunny – 35K triangles
85
Implementation Dell Precision workstation, 2.4GHz Pentium IV CPU, NVIDIA GeForce FX 5800 Ultra GPU, 2GB memory running Windows 2000
86
Performance Number of objects v/s collision time (in ms)
87
Performance Number of polygons v/s collision time (in ms)
88
Performance Screen resolution v/s collision time (in ms)
89
Advantages No coherence No assumptions on motion of objects Works on generic models A fast pruning algorithm No frame-buffer readbacks
90
Limitations No distance or penetration depth information Resolution issues No self-collisions Performance varies with relative configurations
91
Live Demo of Environment 4 Dell M50 laptop, 2.4GHz Pentium IV-M CPU, NVIDIA Quadro4 700GoGL GPU, 1GB memory running Windows XP
92
Live Demo of Environment 1 Avg. frames per second = 300
93
Conclusions Novel algorithm for collision detection using graphics hardware No assumptions on motion Linear time PCS computation algorithm No frame buffer readbacks
94
Conclusions First practical solution for general deformable models and breaking objects
95
Future Work Handle self-collisions Apply to more interactive applications Distance and penetration depth computation
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.