Previous | Next --- Slide 35 of 58
Back to Lecture Thumbnails
pslui88

If we move one of the triangles, say a triangle in the red box, we would need to update the bounding box coordinates for that leaf to encompass the moved triangle. Then, we'd have to update its parent's bounding box, and consequently, the parent's parent, and so on until we reach the root. This bubbling up would be an O(logn) operation.

Notice that the slide simply asks how to make the BVH valid again, not necessarily efficient. Imagine if we moved the triangle really far to the right away from the red box. Then, encompassing it back into the red box would make the BVH less efficient because of all the introduced white space. Thus, Kayvon said that a typical step would be, after a threshold # of triangle moves (and the threshold would be a function of the total # of triangles), the BVH would be entirely recomputed, so primitive lists and bounding boxes would all be redone.

lwzt

In the case that the position of a triangle is moved such that the new position logically fits inside another bounding box, this update algorithm would still work. However, it would reduce the efficiency of the algorithm as two intermediary nodes would would both indicate a ray passes through the bounding box. When the two final leaf nodes are tested, the bounding box whose logical space the moved triangle now resides in would return no intersections but the newly expanded bounding box of the moved triangle would return an intersection.

skim

An additional clarifying note because I was confused at this point in the lecture: BVH bounding boxes can overlap!

Please log in to leave a comment.