Upload
eve-moses
View
27
Download
3
Embed Size (px)
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
Citation preview
Graphics Lab Jong-In Choi 1
Collision DetectionPart II
David H. Eberly3D Game Engine Design
2001. 10. 31
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– 회전하며 이동하는 물체의 충돌 검사
Graphics Lab Jong-In Choi 3
Abstract (2/2)
• Constructing an OBB Tree– OBB Tree 를 만드는 방법
• A Simple Dynamic Collision Detection System– OBB Tree 를 이용한 충돌 검사 구현
Graphics Lab Jong-In Choi 4
Dynamic Object-Object Intersection (1/2)
• 하나는 정지 , 다른 하나는 이동• 움직이는 물체는 상대 속도 (W) 를 가짐• 일정 시간동안 검색 [0, tmax]
이동이동 정지 w
이동
0 tmax
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})
Graphics Lab Jong-In Choi 6
Sphere
Point
Line Segment
Graphics Lab Jong-In Choi 7
Capsule
Line Segment
Parallelogram
Graphics Lab Jong-In Choi 8
Lozenge
Rectangle
Parallelepiped Hexagon
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
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
Graphics Lab Jong-In Choi 11
Oriented Boxes (3/5)
• Added separating sxis
Graphics Lab Jong-In Choi 12
Oriented Boxes (4/5)
• Finding a Point of Intersection
2
0
2
0 iii
iii ByDAx
Graphics Lab Jong-In Choi 13
Oriented Boxes (5/5)
• Finding a Point of Intersection
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
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) 충돌이 아님
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) 충돌이 아님
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) 충돌이 아님
Graphics Lab Jong-In Choi 18
Oriented Boxes and Triangles (5/8)
• Finding a Point of Intersection1100
2
0
EyEyDAxi
ii
Graphics Lab Jong-In Choi 19
Oriented Boxes and Triangles (6/8)
Graphics Lab Jong-In Choi 20
Oriented Boxes and Triangles (7/8)
Graphics Lab Jong-In Choi 21
Oriented Boxes and Triangles (8/8)
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
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)
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)
Graphics Lab Jong-In Choi 25
Triangles (4/4)
• Finding a Point of Intersection
1100
1100
FyFyD
ExEx
Graphics Lab Jong-In Choi 26
Oriented Bounding Box Trees• Gottchalk, Lin, and Manocha 1996• 충돌 검사의 계층적인 방법을 제시• 동적인 물체에 확장 적용 가능
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
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
Graphics Lab Jong-In Choi 29
Constructing an OBB Tree (2/2)
• Example– Teapot, Torus
Level 0 Level 2
Level 4 Level 6
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