Does a BSP tree need to be rebuilt every time the camera's position changes?

47 Views Asked by At

I'm not a computer graphics engineer. I'm more of a quality engineer (primary language is C++). I've just started learning by myself about acceleration structures in computer graphics, especially Binary Space Partitioning (BSP) vs. Bounding Volume Hierarchy (BVH).

I understand that a BSP kind of has a built-in visibility culling algorithm thanks to the way it's built. For example, given a node X in a BSP tree, all nodes in X's left subtree are in front of X, and all nodes in X's right subtree are behind X. On the other hand, a BVH is like an AABB tree whose nodes represent the hierarchical bounding boxes of objects. Unlike BSP, a BVH needs an explicit visibility culling algorithm.

After building a BSP/BVH for objects in a 3D scene, if I change the camera's position (by rotating the scene, for example), I feel like for rendering the updated scene, the BVH won't need to be rebuilt because the bounding boxes remain relatively unchanged. We'll just need to run the explicit visibility culling algorithm on it again with the new viewpoint. The BSP will need to be rebuilt though because the front/back of a node in the BSP is now different with the new viewpoint. Am I understanding it correctly? Thank you in advance!

0

There are 0 best solutions below