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
Download as PPT, PDF, TXT or read online on Scribd
0 ratings0% 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
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