Bounding Volume

Bounding Volume

A volume, contained by a usually simple geometry, like a box. For any complex object or group of objects, a bounding volume can be constructed that contains all objects.

Purpose #

If you want to test the objects in the bounding volume against ray hits (for example when doing Raytracing ), you test the ray intersection with the bounding volume first. If no intersection occurrs, you can be sure that the ray would also not intersect with any of the objects inside the bounding volume. Thus bounding volumes are a strategy to reduce the amount of ray-object tests needed to determine which objects were hit by a ray.

Bounding Volume Hierarchy #

Even with BV, testing if a ray hits an object is in bounding_volume_073b76a2c58935d8faa5f1d87f146e9462d660ab.svg for bounding_volume_45093609f75ed8c0a71eb030e7b9d21f86e5c815.svg bounding volumes in the scene. By groupung the BV themselves into bigger BVs, whole branches of the hierachy can be pruned at once, bringing the complexity to bounding_volume_f8357aee9bcf80248f9f44008e87cf877da807e4.svg for a scene with bounding_volume_4d82a4c30de8e75ce1851da2f92080b507522034.svg objects.

Ray checks using Bounding Volume Hierarchies #

  1. If ray misses top-level BV -> it’s a miss
  2. If it does hit the top-level BV, recusively check the children
  3. As soon as a child has actual geometry in it, ray check against it
Calendar October 22, 2023