This idea of bounding volumes seems similar to the dynamic bounding volume tree (a data structure similar to the quad tree) used in the broad phase of collision detection. The dbvt tree organizes bounding volumes hierarchically by managing to maintain the size of each bounding volume to be the same. Once a bounding box is too large, it subdivides it into smaller bounding boxes to ensure their individual size is neither too big nor too small so that pairwise collision detection inside each box runs the fastest.
This is very interesting and applicable! We'll actually talk about something just like this next lecture to speed up ray-surface intersection.
I see that the left and middle teapots are bounded by a bounding box, similarly to how we put a bounding box around triangles during rasterization in earlier parts of the course, such as the first project. However, here we are using bounding volumes, as in the rightmost teapot in this slide. I'm a bit curious about how we decide which kind volume to use.
Bounding volume is often applied in the field of Computer Vision as well, where we can use binary image to find contour of the image and create minimum bounding box to estimate some useful information such as width, height and position.
Finding the smallest (under some particular situations) convex bounding is really important when representing some object with complex edges. Convex is really reasonable from mathematical perspective and can be easier represented
@alyssa-lau That's a really great point, I was thinking about that question as well. My best guess is that it might be computationally easier to bound an object with a sphere than a box, since we have to define the angles and the planes we use for a bounding box. With a sphere, however, we can simply find the point furthest from the center of the object and draw a bounding circle. Just a thought, anyone have more insight into this?
@Ankur I think it is more important to see the computationally efficiency of the check than the efficiency of defining the bounding volume since defining the bounding volume should only occurs once and can be updated using the same transform as the object inside. Whereas the check to see if the object is inside the bounding volume would have to be performed many times.
I agree with @YIYANGCAI that finding the convex hull of the object will be the most accurate way, but I'm not sure if it's practical. Even a simple real life object can have an extremely complicated convex hull with many surfaces. I wonder if accuracy of the bounding volume is a requirement, whether it's gonna be easier to represent one object with a few small (but "regular", such as spheres and boxes) volumes than with a single convex hull.
@ronthalanki That's a really great point, I think you're actually right. From the checking perspective, it also makes sense that a spherical bounding volume might be computationally more efficient since we can just check distance from the origin, as opposed to checking all 8 corners of a bounding box.