Application of binary space partitioning trees to geometric modeling and ray-tracing

The Binary Space Partitioning Tree (BSP Tree) is a binary tree used to represent an organization of continuous space by recursive subdivision. The BSP tree was initially introduced to organize a set of polygons so that visible surface renderings could be produced from an arbitrary viewing position. This thesis extends the use of the BSP tree in two ways. The first, constituting the bulk of the work, uses the BSP tree to model polyhedral solids. A number of algorithms relating to this representation of a polyhedral set are introduced: determining the boundary of the set, determining volume and center of mass, evaluating set operations (union, intersection, difference), classification of points, line segments, and polygons with respect to the set, constructing the BSP tree from the boundary of the set, and constructing a boundary representation of a set represented by a BSP tree. The BSP tree provides a unified approach to the basic problems encountered in constructing an interactive geometric modeling system. These are: representing polyhedra, rendering, geometric search, property calculation, and set operation evaluation. In previous work, these issues have been addressed with largely independent and unrelated algorithms. By solving these problems with a set of closely related algorithms based on the BSP tree, the task of constructing such a system is made easier. The other new use for the BSP tree discussed is its use in ray-tracing. Ray-tracing can produce very realistic images, but is plagued by the requirement of large amounts of computation. The problem of finding the closest intersection a ray with a collection of objects, the basic operation in ray-tracing, is essentially a searching problem. The BSP tree is used to organize the objects so that the search can be made efficient.