OBB-Tree : A Hierarchical
Structure for Rapid
Interference Detection
Aditya Kulkarni
Hirak Sarkar
Motivation
Motivation
Motivation
Motivation
How to Cover
BV: Bounding Volume
AABB: Axis Aligned Bounding Box
OBB: Oriented Bounding Box
Bounding Sphere
AABB
OBB
Sphere
How to know Orientation
Take Eigen vector of form the orientation axes
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
Top-Down Approach for OBB-Tree
Comparison AABB / OBB
Overlap Testing For OBBs
Previous Algorithms
Simple edge testing (144 inequalities)
Linear programming
Closest Features Computation
This paper
Separating axis theorem
Separated Axis Theorem
Problem statement
Determine if two (convex) objects are intersecting.
Possibly also obtain contact information.
?
A
B
!
A
B
Underlying theory
Set C is convex if and only if the line segment between any two points
in C lies in C.
Underlying theory
Separating Hyperplane Theorem
States: two disjoint convex sets are separable by a hyperplane.
Underlying theory
Nonintersecting concave sets not generally separable by hyperplane (only by
hypersurfaces).
Underlying theory
Separation w.r.t a plane P separation of the orthogonal projections
onto any line L parallel to plane normal.
A B
L
P
Underlying theory
A line for which the projection intervals do not overlap we call a
separating axis.
A B
L
P
Separated if
or
Testing separation
Compare absolute intervals
min
A
a
max
A
min
B
max
B
A
B
max min
A B
max min
B A
Testing separation
For centrally symmetric objects: compare using
projected radii
A
B
B
r
A
r
t
a
t a
Separated if
A B
r r t a
Axes to test
But which axes to test?
Simplification:
Deal only with polytopes
Convex hulls of finite point sets
Planar faces
Axes to test
Handwavingly:
Look at the ways A and B can come into contact.
In 3D, reduces to vertex-face and edge-edge contacts.
Vertex-face:
a face normal from either polytope will serve as a separating axis.
Edge-edge:
the cross product of an edge from each will suffice.
Axes to test
Theoretically:
Consider the Minkowski difference C of A and B.
When A and B disjoint, origin outside C, specifically outside some face F.
Faces of C come from A, from B, or from sweeping the faces of either along
the edges of the other.
Therefore the face normal of F is either from A, from B, or the cross product
of an edge from either.
Axes to test
Four axes for two 2D OBBs:
Moving objects
When objects move, projected intervals move:
Recursive Collision
Detection
Recursive
Collision
Detection
)
Returns TRUE if BBs
Overlap.
Now Primitive
Collision Test
Object A Object B Object A Object B
Object B Object A
Performance
Sep. Axis Theorem Closest Features Linear Programming
5 7 S
45 105 S
180 230 S