0% found this document useful (0 votes)
6 views36 pages

4.2 Collision Detection

Chapter 4.2 discusses collision detection and resolution techniques in computer graphics and gaming. It outlines the complexities of collision detection, including overlap and intersection testing, and suggests methods for simplifying geometry and achieving efficient time complexity. The chapter also details the processes involved in collision resolution, including the prologue, collision, and epilogue phases.

Uploaded by

sidshome
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views36 pages

4.2 Collision Detection

Chapter 4.2 discusses collision detection and resolution techniques in computer graphics and gaming. It outlines the complexities of collision detection, including overlap and intersection testing, and suggests methods for simplifying geometry and achieving efficient time complexity. The chapter also details the processes involved in collision resolution, including the prologue, collision, and epilogue phases.

Uploaded by

sidshome
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

Chapter 4.

2
Collision Detection and
Resolution
Collision Detection
Complicated for two reasons
1. Geometry is typically very complex,
potentially requiring expensive
testing
2. Naïve solution is O(n2) time
complexity, since every object can
potentially collide with every other
object

2
Collision Detection
Two basic techniques
1. Overlap testing

Detects whether a collision has already
occurred
2. Intersection testing

Predicts whether a collision will occur in
the future
Overlap Testing
 Facts
 Most common technique used in games
 Exhibits more error than intersection
testing
 Concept
 For every simulation step, test every
pair of objects to see if they overlap
 Easy for simple volumes like spheres,
harder for polygonal models

4
Overlap Testing:
Useful Results
 Useful results of detected collision
 Time collision took place
 Collision normal vector

5
Overlap Testing:
Collision Time
 Collision time calculated by moving
object back in time until right before
collision
 Bisection is an effective technique
A

t0
A
A
t 0.25 A A
A
t 0.375
t 0.4375 t 0.40625
t 0.5

t1

B B B B B B
In itial O v erlap Iteratio n 1 Iteratio n 2 Iteratio n 3 Iteratio n 4 Iteratio n 5
T es t F o rw ard 1 /2 Bac k w ard 1 /4 F o rw ard 1 /8 F o rw ard 1 /1 6 Bac k w ard 1 /3 2
6
Overlap Testing:
Limitations
 Fails with objects that move too fast
 Unlikely to catch time slice during overlap
 Possible solutions
 Design constraint on speed of objects
 Reduce simulation step size
w in d o w

t -1 t0 t1 t2
b u llet

7
Intersection Testing
 Predict future collisions
 When predicted:
 Move simulation to time of collision
 Resolve collision
 Simulate remaining time step

8
Intersection Testing:
Swept Geometry
 Extrude geometry in direction of
movement
 Swept sphere turns into a “capsule”
shape

t0

t1

9
Intersection Testing:
Sphere-Sphere Collision
t
 Α Β   A B 2  
B 2 Α 2  rP  rQ 
2
, A P1  Q1
B P2  P1   Q 2  Q1 .
2
B

Q2
t= 1

P1
t= 0
P

P2
Q
t= 1

Q1
t= 0
10
Intersection Testing:
Sphere-Sphere Collision
 Smallest distance ever separating
two spheres:
2
d A 2 A B 
2

B2

 r 
2 2
If d P  rQ

there is a collision

11
Intersection Testing:
Limitations
 Issue with networked games
 Future predictions rely on exact state of
world at present time
 Due to packet latency, current state not
always coherent

 Assumes constant velocity and zero


acceleration over simulation step
 Has implications for physics model and
choice of integrator

12
Dealing with Complexity
Two issues
1. Complex geometry must be
simplified
2. Reduce number of object pair tests

13
Dealing with Complexity:
Simplified Geometry
 Approximate complex objects with
simpler geometry, like this
ellipsoid

14
Dealing with Complexity:
Minkowski Sum
 By taking the Minkowski Sum of
two complex volumes and creating
a new volume, overlap can be
found by testing if a single point is
within the new volume

15
Dealing with Complexity:
Minkowski Sum

X  Y { A  B : A  X and B  Y}

X  Y = X Y = X Y

16
Dealing with Complexity:
Minkowski Sum

t1 t1

t0 t0

17
Dealing with Complexity:
Bounding Volumes
 Bounding volume is a simple
geometric shape
 Completely encapsulates object
 If no collision with bounding volume,
no more testing is required
 Common bounding volumes
 Sphere
 Box

18
Dealing with Complexity:
Box Bounding Volumes

Ax is - Alig n ed Bo u n d in g Bo x O r ien ted Bo u n d in g Bo x


19
Dealing with Complexity:
Achieving O(n) Time
Complexity
One solution is to partition space

20
Dealing with Complexity:
Achieving O(n) Time
Complexity
Another solution is the plane sweep
algorithm
y
B1
A1
R1 B
A
B0
A0 R
C1
R0
C

C0
A0 A1 R 0 B0 R 1 C 0 B1 C1 x
21
Terrain Collision Detection:
Height Field Landscape

T o p - D o wn Vie w T o p - D o wn Vie w ( h e igh t s a dde d)

P e r sp e c t iv e Vie w P e r sp e c t iv e Vie w ( h e igh t s a dde d)

22
Terrain Collision Detection:
Locate Triangle on Height
Field

z
Q Q

R Qz > Qx Rz > 1 - Rx

Qz <= Qx Rz <= 1 - Rx

23
Terrain Collision Detection:
Locate Point on Triangle
 Plane equation: Ax  By  Cz  D 0
 A, B, C are the x, y, z components
of the plane’s normal vector
 Where D  N P0
with one of the triangles
vertices beingP0
 Giving: N x x   N y y   N z z    N P0  0
24
Terrain Collision Detection:
Locate Point on Triangle
 The normal can be constructed by
taking the cross product of two sides:

N P1  P0 P2  P0 
 Solve for y and insert the x and z
components of Q, giving the final
equation for point within triangle:
 N x Q x  N z Q z  N P0 
Qy 
Ny
25
Terrain Collision Detection:
Locate Point on Triangle
 Triangulated Irregular Networks
(TINs)
 Non-uniform polygonal mesh
 Barycentric
P
Coordinates
2
P o in t = w 0 P 0 + w 1 P 1 + w 2 P 2
Q Q = ( 0 ) P 0 + ( 0 .5 ) P 1 + ( 0 .5 ) P 2
R
R = ( 0 .3 3 ) P 0 + ( 0 .3 3 ) P 1 + ( 0 .3 3 ) P 2
P1
P0

26
Terrain Collision Detection:
Locate Point on Triangle
 Calculate barycentric coordinates for
point Q in a triangle’s plane
 w1  1  V22  V1 V2   S V1  S Q  P0
w      V1 P1  P0
 2  V1 V2  V1 V2 
2
2 2
  V1 V2 V12   S V2 
V2 P2  P0
w0 1  w1  w2
 If any of the weights (w0, w1, w2) are
negative, then the point Q does not lie
in the triangle
27
Collision Resolution:
Examples
 Two billiard balls strike

Calculate ball positions at time of impact

Impart new velocities on balls

Play “clinking” sound effect
 Rocket slams into wall

Rocket disappears

Explosion spawned and explosion sound effect

Wall charred and area damage inflicted on nearby
characters
 Character walks through wall

Magical sound effect triggered

No trajectories or velocities affected 28
Collision Resolution:
Parts
 Resolution has three parts
1. Prologue
2. Collision
3. Epilogue

29
Collision Resolution:
Prologue
 Collision known to have occurred
 Check if collision should be ignored
 Other events might be triggered
 Sound effects
 Send collision notification messages

30
Collision Resolution:
Collision
 Place objects at point of impact
 Assign new velocities
 Using physics or
 Using some other decision logic

31
Collision Resolution:
Epilogue
 Propagate post-collision effects
 Possible effects
 Destroy one or both objects
 Play sound effect
 Inflict damage
 Many effects can be done either in
the prologue or epilogue

32
Collision Resolution:
Resolving Overlap Testing
1. Extract collision normal
2. Extract penetration depth
3. Move the two objects apart
4. Compute new velocities

33
Collision Resolution:
Extract Collision Normal
 Find position of objects before impact
 Use two closest points to construct the
collision normal vector

34
Collision Resolution:
Extract Collision Normal
 Sphere collision normal vector
 Difference between centers at point of
collision
t0
t0.25
t0.5
t0.75
t0
t1
t0.25
Co
N o llis io t0.5
rm n
al
t0.75

t1

35
Collision Resolution:
Resolving Intersection
Testing
 Simpler than resolving overlap
testing
 No need to find penetration depth or
move objects apart
 Simply
1. Extract collision normal
2. Compute new velocities

36

You might also like