0% found this document useful (0 votes)
138 views

BSP Tree

BSP Tree is a general solution, but with its own problems tree size tree accuracy 3 Binary Space Partition Trees (fuchs, Kedem and Naylor 80) More general, can deal with inseparable objects Automatic, uses as partitions planes defined by the scene polygons Method has two steps: building of the tree independently of viewpoint traversing the tree from a given viewpoint to get visibility ordering 4 building a BSP Tree (Recursive) Select one of them and make it the

Uploaded by

Carlos Zuñiga
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
138 views

BSP Tree

BSP Tree is a general solution, but with its own problems tree size tree accuracy 3 Binary Space Partition Trees (fuchs, Kedem and Naylor 80) More general, can deal with inseparable objects Automatic, uses as partitions planes defined by the scene polygons Method has two steps: building of the tree independently of viewpoint traversing the tree from a given viewpoint to get visibility ordering 4 building a BSP Tree (Recursive) Select one of them and make it the

Uploaded by

Carlos Zuñiga
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

1

Binary Space Partition Trees


Anthony Steed, Yiorgos Chrysanthou 1999-2003

2
Overview
Previous list priority algorithms fail in
a number of cases non of them is
completely general
BSP tree is a general solution, but
with its own problems
Tree size
Tree accuracy
3
Binary Space Partitioning Trees
(Fuchs, Kedem and Naylor `80)
More general, can deal with
inseparable objects
Automatic, uses as partitions planes
defined by the scene polygons
Method has two steps:
building of the tree independently of
viewpoint
traversing the tree from a given
viewpoint to get visibility ordering

4
Building a BSP Tree (Recursive)
A set of polygons
{1, 2, 3, 4, 5, 6}
The tree
5
Building a BSP Tree (Recursive)
Select one polygon and partition the space and the polygons
6
Building a BSP Tree (Recursive)
Recursively partition each sub-tree until all polygons are used up
7
Building a BSP Tree (Recursive)
Start with a set of polygons and an empty
tree
Select one of them and make it the root of
the tree
Use its plane to divide the rest of the
polygons in 3 sets: front, back, coplanar.
Any polygon crossing the plane is split
Repeat the process recursively with the
front and back sets, creating the front and
back subtrees respectively
8
Building a BSP Tree (Incremental)
The tree can also be built incrementally:
start with a set of polygons and an empty tree
insert the polygons into the tree one at a time
insertion of a polygon is done by comparing it
against the plane at each node and
propagating it to the right side, splitting if
necessary
when the polygon reaches an empty cell,
make a node with its supporting plane
9
Back-to-Front Traversal
void traverse_btf(Tree *t, Point vp)
{
if (t = NULL) return;
endif

if (vp in-front of plane at root of t)
traverse_btf(t->back, vp);
draw polygons on node of t;
traverse_btf;(t->front, vp);
else
traverse_btf(t->front, vp);
draw polygons on node of t;
traverse_btf(t->back, vp);
endif
}

10
BSP as a Hierarchy of Spaces
Each node corresponds to a region of space
the root is the whole of R
n
the leaves are homogeneous regions
11
Representation of Polygons
12
Representation of Polyhedra
13
BSP Trees for Dynamic Scenes
When an object moves the planes
that represent it must be removed
and re-inserted
Some systems only insert static
geometry into the BSP tree
Otherwise must deal with merging
and fixing the BSP cells (see the
book!)
14
Recap
A BSP is a sequence of binary
partitions of space
Can be built recursively or
incrementally
Choice of plane used to split is
critical
BSP trees are hard to maintain for
dynamic scenes

You might also like