CIS 350 - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

CIS 350

Description:

The search for intersecting planes of different 3D models in a scene. ... Two convex polytopes are disjoint iff there exists a separating axis orthogonal ... – PowerPoint PPT presentation

Number of Views:18
Avg rating:3.0/5.0
Slides: 54
Provided by: knightCi
Learn more at: https://cis.temple.edu
Category:
Tags: cis | convex

less

Transcript and Presenter's Notes

Title: CIS 350


1
CIS 350 I Game Programming Instructor Rolf
Lakaemper
2
Introduction To Collision Detection
Parts of these slides are based
on www2.informatik.uni-wuerzburg.de/
mitarbeiter/holger/lehre/osss02/schmidt/vortrag.pd
f by Jakob Schmidt
3
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.

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

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

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

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


8
Bounding Volumes
Part 1 Bounding Volumes Reduce complexity of
collision computation by substitution of the
(complex) original object with a simpler object
containing the original one.

9
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
wont either.

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


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


12
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

13
Bounding Volumes
  • Axes Aligned Bounding Box (AABB)


Collision test project BBs onto coordinate axes.
If they overlap on each axis, the objects collide.
14
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

15
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.


16
Bounding Volumes
Each box has 3 unique face orientations, and 3
unique edge directions. This leads to 15
potential separating axes to test (3 faces from
one box, 3 faces from the other box, and 9
pairwise combinations of edges).

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


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


19
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/2
directions

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

21
Bounding Volumes
How to Compute and Store k-DOPs k-directions k-
directions Bi define halfplanes (they are the
normals to the halfplanes) , the intersection of
these halfplanes defines the k-DOP bounding
volume. Halfplane Hi x Bi x di lt 0

22
Bounding Volumes
3D Example UNREAL-Engine

23
Bounding Volumes
2D Example for halfplanes defining a k-DOP

Normal vector Bi
24
Bounding Volumes
  • Again halfplane Hi x Bi x di lt 0
  • If the directions Bi are predefined, only the
    distances di must be stored to specify the
    halfplane Hi . This is one scalar value per
    direction.
  • If the directions are NOT predefined, Bi and di
    must be stored (3D case 4 values)


25
Bounding Volumes
How to compute di Hessian Normal Form ( Bx
d 0 with d Bp) with unit vector of a plane
automatically gives distance d if a single point
p on the plane is known.

26
Bounding Volumes
  • Compute distances of all vertices to plane Bx
    0, i.e. multiply (dot product) each vertex with
    the unit normal vector B


Unit vector B
Bx 0
27
Bounding Volumes
  • di is the minimum distance of the object to the
    plane Bx 0


Bx 0
di
28
Bounding Volumes
Collision Given k non kollinear directions Bi
and V set of vertices of object. Compute di
minBi v v in V and Di maxBi v v in V.
di and Di define an interval on the axis given by
Bi . This is the interval needed for the
collision detection !

29
Bounding Volumes
Collision

D1
Plane defined by B1
Interval d1, D1 defined by B1
B1
d1
30
Bounding Volumes
Part 2 Collision on different
scales Hierarchies

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

32
Hierarchies

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

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

35
Hierarchies
Sphere Trees are used for example in Gran
Tourismo

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


37
Hierarchies

38
Hierarchies

39
Hierarchies
Recursive Collision Detection

)
Returns TRUE if BBs overlap. How could this be
improved to give a precise overlap test ?
40
Hierarchies

41
Hierarchies
  • How to create a hierarchy tree
  • Top down
  • Use single BV covering whole object
  • Split BV
  • Continue recursively until each BV contains a
    single primitive


42
Hierarchies
  • Bottom up
  • Start with BV for each primitive
  • Merge


43
Hierarchies
Example for top down using OBBs

44
Hierarchies
Comparison AABB / OBB

45
Multiple Objects

Part 3 Collision between Multiple Objects
46
Multiple Objects

Virtual environment usually consists of more than
2 objects. Pairwise detailed collision between
all objects is too slow. Solution again 1.
Exclude non colliding objects 2. Check collision
between remaining objects
47
Multiple Objects
  • Methods to exclude non colliding objects
  • Grid Method
  • Or
  • 2. Sort and Sweep (AABB)

48
Multiple Objects

Grid Method Create 3d grid volume
overlay Only check collision between objects
sharing at least one cell
49
Multiple Objects

2D example
50
Multiple Objects
  • Sort and Sweep
  • Create single AABB for each object
  • Project BVs onto coordinate axes
  • Create a sorted list of start and endpoints for
    each coordinate axis, hence store the intervals
    created by each object


(Contd)
51
Multiple Objects
  • Traverse each list
  • If startpoint of object i is hit, insert i into
    active list
  • If endpoint of object i is hit, remove i from
    active list
  • If 2 objects i1,i2 are active at the same time
    they overlap in the dimension processed
  • Objects overlapping in all single dimensions
    overlap in world

52
Multiple Objects

X
Y
s3
  • S3
  • S1
  • E3
  • S2
  • E1
  • E2

3
  • S1
  • S2
  • E1
  • S3
  • E2
  • E3

s1
1
e3
s2
2
e1
e2
OVERLAP 1,2
e2
e1
s2
e3
s1
s3
53
Multiple Objects
Note sort and sweep for a single step is
relatively expensive. Since not all objects are
transformed for the next frame, the list is not
created newly for each frame, but updated.
Write a Comment
User Comments (0)
About PowerShow.com