# Difference between revisions of "Bounding Volumes"

Bounding Box
Fields: Algebra and Geometry
Image Created By: chanj

Bounding Box

A box bounding the Stanford Bunny mesh.

# Basic Description

A bounding volume in computer graphics is a shape that encloses one or more objects. The shape should be the tightest fit to the set of objects. Many figures are complicated and have hundreds of vertices, which make up their shapes. By bounding them in simple geometric shapes, it would lower the computational cost when detecting collisions between multiple objects and checking for intersections in ray tracing.

# A More Mathematical Explanation

Note: understanding of this explanation requires: *algebra, geometry

Ray tracing is a method of generating a graphical image on the screen. It is used display simulated o [...]

Ray tracing is a method of generating a graphical image on the screen. It is used display simulated optical effects such as shadows, reflection and refraction. Light rays are cast onto the scene and the program must test if the rays are intersecting the object in the scene. Depending on the surface of the object, the rays would determine how it would be rendered. Because the program must determine if the rays intersect the object’s vertices, the computational cost can be expensive. The bounding box or any simple geometric volume that is a tight fit to the box lowers the computational cost. The rays does not have to test with points that are not on the object. With the box, the rays would not trace points that are not in the box, since that would mean the object does not exist outside of the box. The same concept applies to collision detection. With bounding volumes, there is a hierarchy of tests for intersections of vertices and edges. The program can quickly decide if the object are near each other before testing for the vertices of the object if the volumes intersects.

blank

# How the Main Image Relates

The image is a visual of a bounding on an object.

# About the Creator of this Image

I used OpenGL with C++. Most of the code belongs to User:Cutler.

blank

blank