Presentation is loading. Please wait.

Presentation is loading. Please wait.

Adapted from: CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Naga K. Govindaraju, Stephane.

Similar presentations


Presentation on theme: "Adapted from: CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Naga K. Govindaraju, Stephane."— Presentation transcript:

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


Download ppt "Adapted from: CULLIDE: Interactive Collision Detection Between Complex Models in Large Environments using Graphics Hardware Naga K. Govindaraju, Stephane."

Similar presentations


Ads by Google