Determine the point of intersection between a ray and axis-aligned bounding box (AABB). Theoretically works in an arbitrary number of dimensions!
Many thanks to @BSVino for providing the original C++ implementation and accompanying videos.
Determines if the given ray (origin, direction)
intersects with the aabb
.
If no intersection occurs, returns null
. Otherwise, the intersection point is stored in out
and then returned.
const origin = new Float32Array([0, 4, 0])
const dir = new Float32Array([0, 1, 0])
const out = new Float32Array(3)
const aabb = [
[-1, -1, -1],
[+1, +1, +1]
]
intersection(out, origin, dir, aabb)
Returns the distance from the given ray (origin, direction)
to the supplied aabb
. If no intersection occurs, returns Infinity
.
Note that the direction
vector should be normalized.
- ray-aabb
- ray-sphere-intersection
- ray-plane-intersection
- ray-triangle-intersection
- camera-picking-ray
MIT, see LICENSE.md for details.