Four-sided frustum and oriented bounding box (OBB) intersection in 3D

  3d, c++, collision, geometry, intersection

I’m trying to check if there’s an intersection between a four-sided frustum that’s composed of a top, bottom, left and right plane (no near or far plane) and an oriented bounding box in 3D using C++.

The result should be true if any part of the OBB is inside the frustum even only partially and also if the frustum is completely or partially inside the OBB. I don’t need the point or normal of the intersection, just a bool if there was one.

I think what I need to be using is SAT (separating axis theorem) but couldn’t find an example online that would work between OBB and frustum in 3D. I’ve also tried using David Eberly’s Geometric Tools library (https://github.com/davideberly/GeometricTools) but it wasn’t working for me.

The closest I’ve found was SAT between two OBBs so maybe this could be adapted to work with an OBB and four planes but I don’t know how: Simple Oriented Bounding Box OBB collision detection explaining

I’m by no means a mathematician and would appreciate code!

Source: Windows Questions C++

LEAVE A COMMENT