SLIDE 1 BSP Trees
- Binary Spatial Partitioning (BSP) means:
– Partition (or split) a space into Binary (two) parts using a separating plane. – Repeat the process for both resulting subspaces and you will get a BSP tree.
SLIDE 2 Occlusion
Objects “behind” the splitting plane cannot hide objects “in front” of the plane, regardless the relative location of the
SLIDE 3 Splitting Planes
example is a simple model with four polygons.
planes so that they lay on a one of the polygon of the model.
SLIDE 4 Creating the tree
We choose a splitting plane that splits the space in two.
Chosen Splitting Plane Root Node L Node R Node
Associated Splitting Plane
SLIDE 5 Creating the tree
L Node R Node Chosen Splitting Plane
Associated Splitting Plane
SLIDE 6 Creating the tree
Chosen Splitting Plane
SLIDE 7 Creating the tree
Chosen Splitting Plane
SLIDE 8
Creating the tree
The leaves of the tree are convex regions.
SLIDE 9 Traversing the Tree
We want to render the scene from this point
should we render the regions?
SLIDE 10 Traversing the Tree
Test against the splitting plane
Traverse the R subtree before the L subtree Rendering order:
Test against the splitting plane
SLIDE 11 Creating the tree
Test against the splitting plane
Traverse the L subtree before the R subtree Rendering order:
Test against the splitting plane
SLIDE 12 Creating the tree
Rendering order: Traverse the L subtree before the R subtree
Test against the splitting plane Test against the splitting plane
SLIDE 13 Creating the tree
Rendering order:
Test against the splitting plane
Traverse the R subtree before the L subtree
Test against the splitting plane
SLIDE 14 Creating the tree
Rendering order:
Test against the splitting plane Test against the splitting plane
Traverse the L subtree before the R subtree
SLIDE 15
Convex Cells
The cells can be ordered back to front, or front to back.
SLIDE 16
F2B Order
1 2 3 4 5 6
SLIDE 17
F2B Order
1 2 3 4 5 6
SLIDE 18 Hidden Surface Removal
Display: – Traverse the BSP tree back to front, drawing polygons in the order they are encountered in the traversal.
– Pick a polygon, let its supporting plane be the root of the tree. – Create two lists of polygons: these in front, and those behind (splitting polygons as necessary). – Recurse on the two lists to create the two sub-trees.
SLIDE 19 BSP Construction
1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6
SLIDE 20
BSP Trees
BSP-Trees are view-independent A good splitting plane minimize the number of polygon intersections, and aims at a balanced tree. How to choose the order of splitting planes during construction?
SLIDE 21
Point Location
Given p, in which cell it resides?
SLIDE 22
Ray Traversal
Given R, which cells, and in which order it traverses?