A [[Bounding Volume]] Hierarchy is a type of [[Spatial Partitioning]] [[Tree]] [[Data Structure]]. The leaf nodes in a BVH store the objects, while internal nodes store bounding volumes of all its children bounding volumes. There are two types of BVH: - Dynamic BVTs - Build & Update at runtime - Static BVTs - Build once - Good for static objects - Tighter space ### Binary Tree ```cpp class Node { Aabb aabb; void* clientData; Node* left, *right, *parent; size_t height; }; ``` Ideally, $h=\lceil \log_{2}(n) \rceil$ ### Operations TODO: bring this from written notes ### Balance Observation: The insertion order of objects changes the structure of the tree. If the tree is not balanced queries