In computer graphics and computational geometry, a bounding volume for a set of objects is a closed volume that completely contains the set. Bounding volumes are used to improve the efficiency of geometrical operations by using simple volumes to contain more complex objects. Normally, simpler volumes have simpler ways to test for overlap.
Uses of bounding volumes
In ray tracing, a ray that misses a bounding volume misses the object contained in the volume, saving the more complex test of the ray against the object.
In dynamical simulation, when two bounding volumes do not intersect, then the objects contained in the volumes cannot collide. So testing bounding volumes is a quick first step in collision detection.
In rendering, an object whose bounding volume lies outside the viewing frustum will not appear in the image, so need not be drawn.
Common types of bounding volume
A bounding sphere is a sphere contaning the object. Spheres are very quick to test for collision with each other: two spheres are separated if the distance between their centres is greater than the sum of their radii. This makes bounding spheres appropriate for objects that can move in three dimensions.
A bounding cylinder is an upright axis-aligned cylinder containing the object. Cylinders are appropriate for objects that can rotate about the vertical axis but not about other axes, and especially appropriate for objects that are constrained to move along a flat horizontal surface. Two axis-aligned cylinders on a flat surface intersect if the horizontal distance between their axes is less than the sum of their radii. In video games, bounding cylinders are often used as bounding volumes for people standing upright.
A bounding box is a cuboid containing an object. In dynamical simulation, bounding boxes are better than other shapes of bounding volume such as bounding spheres or cylinders for objects that are roughly cuboid in shape, so that the intersection test is very accurate. This gives a benefit for objects that rest close to each other, for example a car resting on the ground: a bounding sphere would show the car possibly intersecting with the ground which would then be rejected by a more expensive test of the actual model of the car; a bounding box would show the car not intersecting with the ground, saving the more expensive test.
A bounding box is sometimes called an oriented bounding box (OBB) to distinguish it from an axis_aligned bounding box (AABB), which is a bounding box aligned with the axes of the co_ordinate system. Axis_aligned bounding boxes are simpler to test for intersection than oriented bounding boxes, but have the disadvantage that they cannot be rotated.
A discrete oriented polytope with k faces (k_DOP) is a convex polytope surrounding an object (in 2_dimensional graphics the DOP is a polygon; in 3_dimensional graphics it is a polyhedron). A DOP is constructed by taking k planes at infinity and moving them until they collide with the object. The DOP is the convex polytope resulting from intersection of the half_spaces bounded by the planes. Popular choices of DOP in 3_dimensional graphics include the bounding box, made from 6 axis-aligned planes, and the beveled bounding box, made from 10 (if beveled only on vertical edges, say) 18 (if beveled on all edges), or 26 planes (if beveled on all edges and corners).
A convex hull is the smallest convex polytope surrounding an object (the smallest possible DOP).
- Illustration of several DOPs for the same model, from epicgames.com (http://udn.epicgames.com/Two/CollisionTutorial/kdop_sizes.jpg)