Presentation is loading. Please wait.

Presentation is loading. Please wait.

Parts of these slides are based on

Similar presentations


Presentation on theme: "Parts of these slides are based on"— Presentation transcript:

1 Parts of these slides are based on
Introduction To Collision Detection Parts of these slides are based on www2.informatik.uni-wuerzburg.de/ mitarbeiter/holger/lehre/osss02/schmidt/vortrag.pdf by Jakob Schmidt

2 The search for intersecting planes of different 3D models in a scene.
What ? The problem: The search for intersecting planes of different 3D models in a scene. Collision Detection is an important problem in fields like computer animation, virtual reality and game programming.

3 The problem can be defined as
Intro The problem can be defined as if, where and when two objects intersect.

4 This introduction will deal with the basic problem:
IF two (stationary) objects intersect.

5 Pairwise collision check of all polygons the objects are made of.
Intro The simple solution: Pairwise collision check of all polygons the objects are made of.

6 Problem: complexity O(n²)
Intro Problem: complexity O(n²) not acceptable for reasonable number n of polygons not applicable for realtime application

7 Solution: Bounding Volumes
Reduce complexity of collision computation by substitution of the (complex) original object with a simpler object containing the original one.

8 Bounding Volumes The original objects can only intersect if the simpler ones do. Or better: if the simpler objects do NOT intersect, the original objects won’t either.

9 How to choose BVs ? Object approximation behavior (‘Fill efficiency’)
Bounding Volumes How to choose BVs ? Object approximation behavior (‘Fill efficiency’) Computational simplicity Behavior on (non linear !) transformation (incl. deformation) Memory efficiency

10 Different BVs used in game programming:
Bounding Volumes Different BVs used in game programming: Axes Aligned Bounding Boxes (AABB) Oriented Bounding Boxes (OBB) Spheres k-Discrete Oriented Polytopes (k DOP) Sphere OBB k-DOP AABB

11 Axes Aligned Bounding Box (AABB)
Bounding Volumes Axes Aligned Bounding Box (AABB) Align axes to the coordinate system Simple to create Computationally efficient Unsatisfying fill efficiency Not invariant to basic transformations, e.g. rotation

12 Oriented Bounding Box (OBB)
Bounding Volumes Oriented Bounding Box (OBB) Align box to object such that it fits optimally in terms of fill efficiency Computationally expensive Invariant to rotation Complex intersection check

13 The overlap test is based on the Separating Axes Theorem
Bounding Volumes The overlap test is based on the Separating Axes Theorem (S. Gottschalk. Separating axis theorem. Technical Report TR96-024,Department of Computer Science, UNC Chapel Hill, 1996) Two convex polytopes are disjoint iff there exists a separating axis orthogonal to a face of either polytope or orthogonal to an edge from each polytope.

14 Separating Axes Theorem
Bounding Volumes Separating Axes Theorem Axes

15 Check for overlap on every single Axis (project polygon to axis).
Bounding Volumes Check for overlap on every single Axis (project polygon to axis). Two polygons intersect, if their projections overlap on EVERY axis.

16 On the y-axis, all boxes overlap
Bounding Volumes Overlap check on single axis: Sort and Sweep (Example for xy-axis aligned boxes) sort 1 2 3 On the y-axis, all boxes overlap

17 On the x-axis, boxes 2-3 and 3-1 overlap
Bounding Volumes Overlap check on single axis: Sort and Sweep 1 2 3 sort On the x-axis, boxes 2-3 and 3-1 overlap

18 Combine overlap check of single axes:
Bounding Volumes Combine overlap check of single axes: x 1 2 3 y 1 2 3 = 1 2 3

19 Sphere Relatively complex to compute Bad fill efficiency
Bounding Volumes Sphere Relatively complex to compute Bad fill efficiency Simple overlap test invariant to rotation

20 Not invariant to rotation
Bounding Volumes K-DOP Easy to compute Good fill efficiency Simple overlap test Not invariant to rotation

21 k-DOP is considered to be a trade off between AABBs and OBBs.
Bounding Volumes k-DOP is considered to be a trade off between AABBs and OBBs. Its collision check is a general version of the AABB collision check, having k directions

22 k-DOPs are used e.g. in the game (XBOX, Pseudo Interactive, 2002)
Bounding Volumes k-DOPs are used e.g. in the game ‘Cell Damage’ (XBOX, Pseudo Interactive, 2002)

23 k-directions How to Compute and Store k-DOPs:
Bounding Volumes How to Compute and Store k-DOPs: k-directions k-directions Bi define planes (Bi is the normal to plane i) , the intersection of these planes defines the k-DOP bounding volume. Plane Pi = {x | Bi x – di <= 0} (-> Hesse Normal Form)

24 3D Example: UNREAL-Engine
Bounding Volumes 3D Example: UNREAL-Engine

25 2D Example for planes defining a k-DOP
Bounding Volumes 2D Example for planes defining a k-DOP Normal vector Bi

26 Collision on different scales:
Bounding Volumes Collision on different scales: Hierarchies

27 Hierarchies Idea: To achieve higher exactness in collision detection, build a multiscale BV representation of the object

28 Hierarchies

29 Hierarchies Use the hierarchy from coarse to fine resolution to exclude non intersecting objects

30 The hierarchy is stored in a tree, named by the underlying BV scheme:
Hierarchies The hierarchy is stored in a tree, named by the underlying BV scheme: AABB – tree OBB – tree Sphere – tree kDOP – tree

31 Sphere Trees are used for example in
Hierarchies Sphere Trees are used for example in “Gran Tourismo”

32 Each node contains all primitives of its subtree
Hierarchies Simple example: Binary tree Each node contains all primitives of its subtree Leaves contain single primitive

33 Hierarchies

34 Hierarchies

35 Hierarchies Comparison AABB / OBB


Download ppt "Parts of these slides are based on"

Similar presentations


Ads by Google