OBB-to-OBB
Like the AABB to OBB test, checking if two OBBs overlap is best done using the separating axis theorem. The actual SAT function will be very similar to the AABB to OBB test. Like AABB to OBB, there are 15 axes of potential separation to test. The 15 axes that we need to test are similar to AABB to OBB, except the first three axis are the orientation of the first OBB.
If we have two OBBs, A and B, we can find the 15 axes of potential separation between them as follows:
The first three axes of separation are the basis vectors of the orientation of the first OBB:
AABB.XAxis |
AABB.YAxis |
AABB.ZAxis |
The next three axes of separation are the basis vectors of the orientation of the second OBB:
B.XAxis |
B.YAxis |
B.ZAxis |
The last nine axes of separation are the cross products of every basis axis from both OBBs:
A.XAxis x B.XAxis |
A.YAxis x B.XAxis |
A.ZAxis x B.XAxis |
A.XAxis x B.YAxis |
A.YAxis x B.YAxis |
A.ZAxis x B.YAxis |
A.XAxis X B.ZAxis |
A.YAxis x B.ZAxis |
A.ZAxis x B.ZAxis |