collision detection part ii

30
Graphics Lab Jong-In Choi 1 Collision Detection Part II David H. Eberly 3D Game Engine Design 2001. 10. 31

Upload: eve-moses

Post on 03-Jan-2016

31 views

Category:

Documents


3 download

DESCRIPTION

Collision Detection Part II. David H. Eberly 3D Game Engine Design 2001. 10. 31. Abstract (1/2). Dynamic Object-Object Intersection 물체가 이동한 궤적을 고려하여 검사 Oriented Bounding Box Trees OBB Tree 의 간략한 소개 Processing of Rotating and Moving Objects 회전하며 이동하는 물체의 충돌 검사. Abstract (2/2). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Collision Detection Part II

Graphics Lab Jong-In Choi 1

Collision DetectionPart II

David H. Eberly3D Game Engine Design

2001. 10. 31

Page 2: Collision Detection Part II

Graphics Lab Jong-In Choi 2

Abstract (1/2)

• Dynamic Object-Object Intersection– 물체가 이동한 궤적을 고려하여 검사

• Oriented Bounding Box Trees– OBB Tree 의 간략한 소개

• Processing of Rotating and Moving Objects– 회전하며 이동하는 물체의 충돌 검사

Page 3: Collision Detection Part II

Graphics Lab Jong-In Choi 3

Abstract (2/2)

• Constructing an OBB Tree– OBB Tree 를 만드는 방법

• A Simple Dynamic Collision Detection System– OBB Tree 를 이용한 충돌 검사 구현

Page 4: Collision Detection Part II

Graphics Lab Jong-In Choi 4

Dynamic Object-Object Intersection (1/2)

• 하나는 정지 , 다른 하나는 이동• 움직이는 물체는 상대 속도 (W) 를 가짐• 일정 시간동안 검색 [0, tmax]

이동이동 정지 w

이동

0 tmax

Page 5: Collision Detection Part II

Graphics Lab Jong-In Choi 5

Dynamic Object-Object Intersection (2/2)

• Spheres, Capsules, and Lozenges• Oriented Boxes• Oriented Boxes and Triangles• Triangles

Dynamic

Static

Sphere Capsule Lozenge

Sphere Dist(pnt, {pnt, seg}) Dist(pnt, {seg, pgm}) Dist(pnt, {rct, hex, ppd})

Capsule Dist(seg, {pnt, seg}) Dist(seg, {seg, pgm}) Dist(seg, {rct, hex, ppd})

Lozenge

Dist(rct, {pnt, seg}) Dist(rct, {seg, pgm}) Dist(rct, {rct, hex, ppd})

Page 6: Collision Detection Part II

Graphics Lab Jong-In Choi 6

Sphere

Point

Line Segment

Page 7: Collision Detection Part II

Graphics Lab Jong-In Choi 7

Capsule

Line Segment

Parallelogram

Page 8: Collision Detection Part II

Graphics Lab Jong-In Choi 8

Lozenge

Rectangle

Parallelepiped Hexagon

Page 9: Collision Detection Part II

Graphics Lab Jong-In Choi 9

Oriented Boxes (1/5)

• Finding the First Time of Intersection

D

R0

R1

LR

a1A1

a2A2

b1B1

b2B2

L: separating axis

ai: edge length of box A

Ai: axis normal of box A

bi: edge length of box B

Bi: axis normal of box BD: distance between boxes

Page 10: Collision Detection Part II

Graphics Lab Jong-In Choi 10

Oriented Boxes (2/5)

• Finding the First Time of Intersection

C(0)C(T)C(T)C(0)

R(T)R0

R1

R(0)

R (0)< R0 + R 1 , R (tmax)> R0 + R 1

Sign(L•D(0)) = Sign(L•D(tmax)) 충돌이 아님

L

D

Page 11: Collision Detection Part II

Graphics Lab Jong-In Choi 11

Oriented Boxes (3/5)

• Added separating sxis

Page 12: Collision Detection Part II

Graphics Lab Jong-In Choi 12

Oriented Boxes (4/5)

• Finding a Point of Intersection

2

0

2

0 iii

iii ByDAx

Page 13: Collision Detection Part II

Graphics Lab Jong-In Choi 13

Oriented Boxes (5/5)

• Finding a Point of Intersection

Page 14: Collision Detection Part II

Graphics Lab Jong-In Choi 14

Oriented Boxes and Triangles (1/8)

• Finding the First Time of Intersection

D

L

-R

a1A1a2A2

R

E1

E0p0

p1

p2

Min(ui) Max(ui)

L: separating axis

ai: edge length of box

Ai: axis normal of box

Ei: edge vector of triangle

pi: vertex of triangle

D: distance between boxes

Page 15: Collision Detection Part II

Graphics Lab Jong-In Choi 15

Oriented Boxes and Triangles (2/8)

• Finding the First Time of Intersection– Axis N

-R R p(0)p(T)p(T)p(0)

R > p(0) and R > p(T)-R < p(0) and -R > p(T) 충돌이 아님

Page 16: Collision Detection Part II

Graphics Lab Jong-In Choi 16

Oriented Boxes and Triangles (3/8)

• Finding the First Time of Intersection– Axis Ak

-R R p(0)p(T)p(T)p(0)

R > p(0) and R > p(T)-R < p(0) and -R > p(T) 충돌이 아님

Page 17: Collision Detection Part II

Graphics Lab Jong-In Choi 17

Oriented Boxes and Triangles (4/8)

• Finding the First Time of Intersection– Axis Ai X Ej

-R R p(0)p(T)p(T)p(0)

R > p(0) and R > p(T)-R < p(0) and -R > p(T) 충돌이 아님

Page 18: Collision Detection Part II

Graphics Lab Jong-In Choi 18

Oriented Boxes and Triangles (5/8)

• Finding a Point of Intersection1100

2

0

EyEyDAxi

ii

Page 19: Collision Detection Part II

Graphics Lab Jong-In Choi 19

Oriented Boxes and Triangles (6/8)

Page 20: Collision Detection Part II

Graphics Lab Jong-In Choi 20

Oriented Boxes and Triangles (7/8)

Page 21: Collision Detection Part II

Graphics Lab Jong-In Choi 21

Oriented Boxes and Triangles (8/8)

Page 22: Collision Detection Part II

Graphics Lab Jong-In Choi 22

Triangles (1/4)

• Finding the First Time of Intersection

LMin(vi)

D

E0

E1 F1

F0

Max(vi)

Min(ui)

Max(ui)

p0

p1

p2 q0q1

q2

L: separating axis

Ei: edge vector of triangle1pi: vertex of triangle1

Ei: edge vector of triangle1pi: vertex of triangle1

D: distance between boxes

Page 23: Collision Detection Part II

Graphics Lab Jong-In Choi 23

Triangles (2/4)

• Finding the First Time of Intersection– Axis N or M

p(0)p(T)p(T)p(0)

Page 24: Collision Detection Part II

Graphics Lab Jong-In Choi 24

Triangles (3/4)

• Finding the First Time of Intersection– Axis E X F

p(0)p(T)p(T)p(0)

Page 25: Collision Detection Part II

Graphics Lab Jong-In Choi 25

Triangles (4/4)

• Finding a Point of Intersection

1100

1100

FyFyD

ExEx

Page 26: Collision Detection Part II

Graphics Lab Jong-In Choi 26

Oriented Bounding Box Trees• Gottchalk, Lin, and Manocha 1996• 충돌 검사의 계층적인 방법을 제시• 동적인 물체에 확장 적용 가능

Page 27: Collision Detection Part II

Graphics Lab Jong-In Choi 27

Processing of Rotatingand Moving Objects

• 일정 시간 간격마다 충돌 검사– Equations of Motion– Closed-Form Algorithm– Algorithm Based on a Numerical

Ordinary Differential Equation Solver

Page 28: Collision Detection Part II

Graphics Lab Jong-In Choi 28

Constructing an OBB Tree (1/2)

• Subdivision rule– Splitting longest axis of a box– Partitioning the polygons according to

center point lies on

Recursively partitionThe Bounded polygons

Page 29: Collision Detection Part II

Graphics Lab Jong-In Choi 29

Constructing an OBB Tree (2/2)

• Example– Teapot, Torus

Level 0 Level 2

Level 4 Level 6

Page 30: Collision Detection Part II

Graphics Lab Jong-In Choi 30

A Simple Dynamic Collision Detection System

• Testing for Collision– Tree 를 반복적으로 검색

• Root leaf: 하향식 검색 • Finding Collision Detection

– OBB & OBB– OBB & Triangle– Triangle & Triangle