Bounding volume
|
BoundingBox.jpg
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
Bounding volumes are most often used to accelerate certain kinds of tests.
In ray tracing, bounding volumes are used in ray-intersection tests, and in many rendering algorithms, it is used for viewing frustum tests. If the ray or viewing frustum does not intersect the bounding volume, it cannot intersect the object contained in the volume.
In collision detection, when two bounding volumes do not intersect, then the contained objects cannot collide, either.
Testing against a bounding volume is typically much faster than testing against the object itself, because of the bounding volume's simpler geometry.
Common types of bounding volume
A bounding sphere is a sphere containing 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).
External link
- Illustration of several DOPs for the same model, from epicgames.com (http://udn.epicgames.com/Two/CollisionTutorial/kdop_sizes.jpg)