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$