Given a bounding box, with definitions like bounds.min.(x/y/z)
, bounds.max.(x/y/z)
, and two points in 3D space (expressed as Vector3
objects), how can I determine if the line made by the two points intersects the bounding box?
There is an implementation in C++ available online here: Line Box Intersection (http://www.3dkingdoms.com/weekly/weekly.php?a=3)
Another link, with references (and code) for a lot of intersection tests: http://www.realtimerendering.com/intersections.html
If you want to learn more about intersection tests, this one is the bible: Real-Time Collision Detection (Amazon)
EDIT: the algorithm in this paper ("An Efficient and Robust Ray-Box Intersection Algorithm", Amy Williams and Steve Barrus and R. Keith Morley and Peter Shirley; journal of graphics, gpu, and game tools, Vol. 10(1), 49-54, 2005) looks especially concise and comes with (C++) source code, too.