A Lion in The Desert
A Lion in The Desert
How do you find a lion in the desert? How about when you have a predicate that tells you if the lion is in front or behind a separating plane?
BSP Trees
Binary Spatial Partitioning (BSP) means:
Partition (or split) a space (like the desert) into Binary (two) parts using a separating plane. Repeat the process for both resulting subspaces and you will get a BSP tree.
Occlusion
Objects behind the splitting plane cannot hide objects in front of the plane, regardless the relative location of the observer.
Splitting Planes
What we see in this example is a simple model with four polygons. We will choose the splitting planes so that they lay on a polygon of the model.
Root Node
L Node
R Node
L Node
R Node
Rendering order:
Rendering order:
Rendering order:
Rendering order:
Rendering order:
Convex Cells
F2B Order
6 5
4
2 3 1
F2B Order
4 3 1 6
BSP Construction
1 3 4
1 3 6
1 3 7 4 6
3 6 5 4 5
BSP Trees
BSP-Trees are view-independent
A good splitting plane minimize the number of polygon intersections, and aims at a balanced tree.
Point Location
Ray Traversal