Keywords

Years and Authors of Summarized Original Work

1990; Paterson, Yao

1992; Paterson, Yao

1992; D’Amore, Franciosa

2002; Berman, DasGupta, Muthukrishnan

2003; Tóth

2004; Dumitrescu, Mitchell, Sharir

2005; Hershberger, Suri, Tóth

2011; Tóth

Problem Definition

The binary space partition (for short, BSP) is a scheme for subdividing the ambient space \(\mathbb{R}^{d}\) into open convex sets (called cells) by hyperplanes in a recursive fashion. Each subdivision step for a cell results in two cells, in which the process may continue, independently of other cells, until a stopping criterion is met. The binary recursion tree, also called BSP-tree, is traditionally used as a data structure in computer graphics for efficient rendering of polyhedral scenes. Each node v of the BSP-tree, except for the leaves, corresponds to a cell \(C_{v} \subseteq \mathbb{R}^{d}\) and a partitioning hyperplane H v . The cell of the root r is \(C_{r} =\mathbb{R} ^{d}\), and the two children of a node v correspond to \(C_{v} \cap H_{v}^{-}\) and \(C_{v} \cap H_{v}^{+}\), where H v and H v + denote the open half-spaces bounded by H v . Refer to Fig. 1.

Fig. 1
figure 1

Three 2-dimensional convex objects and a line segment (left), a binary space partition with five partition lines H 1, , H 5 (center), and the corresponding BSP tree (right)

A binary space partition for a set of n pairwise disjoint (typically polyhedral) objects in \(\mathbb{R}^{d}\) is a BSP where the space is recursively partitioned until each cell intersects at most one object. When the BSP-tree is used as a data structure, every leaf v stores the fragment of at most one object clipped in the cell C v , and every interior node v stores the fragments of any lower-dimensional objects that lie in \(C_{v} \cap H_{v}\).

A BSP for a set of objects has two parameters of interest: the size and the height of the corresponding BSP-tree. Ideally, a BSP partitions space so that each object lies entirely in a single cell or in a cutting hyperplane, yielding a so-called perfect BSP [4]. However, in most cases this is impossible, and the hyperplanes H v partition some of the input objects into fragments. Assuming that the input objects are k-dimensional, for some kd, the BSP typically stores only k-dimensional fragments, i.e., object parts clipped in leaf cells C v or in C v H v at interior nodes.

The size of the BSP-tree is typically proportional to the number of k-dimensional fragments that the input objects are partitioned into, or the number of nodes in the tree. Given a set S of objects in \(\mathbb{R}^{d}\), one would like to find a BSP for S with small size and/or height. The partition complexity of a set of objects S is defined as the minimum size of a BSP for S.

Glossary

  • Autopartition: a class of BSPs obtained by imposing the constraint that each cut is along a hyperplane containing a facet of one of the input objects.

  • Axis-aligned BSP: a class of BSPs obtained by imposing the constraint that each cut is orthogonal to a coordinate axis.

  • Round-robin BSP: An axis-aligned BSP in \(\mathbb{R}^{d}\) where any d consecutive recursive cuts are along hyperplanes orthogonal to the d coordinate axes.

  • Tiling in \(\mathbb{R}^{d}\): a set of interior-disjoint polyhedra that partition \(\mathbb{R}^{d}\).

  • Axis-aligned tiling: a set of full-dimensional boxes that partition \(\mathbb{R}^{d}\).

  • d-dimensional box: the cross product of d real-valued intervals.

Key Results

The theoretical study of BSPs was initiated by Paterson and Yao [10, 11].

Line Segments in the Plane

A classical result of Paterson and Yao [10] is a simple and elegant randomized algorithm, which, given n disjoint segments, produces a BSP whose expected size is O(nlogn); see also [3, Ch. 12]. It was widely believed for decades that every set of n disjoint line segments in the plane admits a BSP of size O(n); see e.g., [10, p. 502]; this was until Tóth proved a tight super-linear bound for this problem, first by constructing a set of segments for which any BSP must have size \(\varOmega (n\log n/\log \log n)\) and later by matching this bound algorithmically:

Theorem 1 ([12, 15]).

Every set of n disjoint line segments in the plane admits a BSP of size \(O(n\log n/\log \log n)\) . This bound is the best possible, and a BSP of this size can be computed in \(O(n\log ^{2}n)\) time.

Simplices in \(\mathbb{R}^{d}\)

The randomized partition technique of Paterson and Yao generalizes to higher dimensions yielding the following.

Theorem 2 ([10]).

Every set of n (d − 1)-dimensional simplices in \(\mathbb{R}^{d}\) , where d ≥ 3 admits a BSP of size O(n d−1 ).

While there exist n disjoint triangles in \(\mathbb{R}^{3}\) that require a BSP of size Ω(n 2), no super-quadratic lower bound is known in any dimension d. Near-linear upper bounds are known for “realistic” input models in \(\mathbb{R}^{3}\) such as uncluttered scenes [5] or fat axis-aligned rectangles [14].

Axis-Parallel Segments, Rectangles, and Hyperrectangles

Theorem 3 ([1, 7, 10]).

Every set of n pairwise disjoint axis-parallel line segments in the plane admits an auto-partition of size at most 2n − 1. Such a BSP can be computed using O(nlog n) time and space and has the additional property that no input segment is cut more than once. The upper bound on the size is the best possible apart from lower-order terms.

Theorem 4 ([7, 11]).

Let Γ be a collection of n line segments in \(\mathbb{R}^{d}\) , where d ≥ 3, consisting of n i segments parallel to the x i -axis, for i = 1,…,d. Then Γ admits a BSP of size at most

$$\displaystyle{4^{1/(d-1)}(d - 1)(n_{ 1}n_{2}\ldots n_{d})^{1/(d-1)} + 2n.}$$

Theorem 5 ([7]).

For constants 1 ≤ k ≤ d − 1, every set of n axis-parallel k-rectangles in d-space admits an axis-aligned BSP of size \(O(n^{d/(d-k)})\) . This bound is the best possible for k < d∕2 apart from the constant factor.

For kd∕2, the best known upper and lower bounds do not match. No super-quadratic lower bound is known in any dimension d. In \(\mathbb{R}^{4}\), Dumitrescu et al. [7] constructed n 2-dimensional disjoint rectangles whose partition complexity is Ω(n 5∕3).

Tilings

Already in the plane, the worst-case partition complexity of axis-aligned tilings is smaller than that for disjoint boxes. Berman, DasGupta, and Muthukrishnan [6] showed that every axis-aligned tiling of size n admits an axis-aligned BSP of size at most 2n; apart from lower-order terms, this bound is the best possible. For higher dimensions, Hershberger, Suri, and Tóth obtained the following result.

Theorem 6 ([9]).

Every axis-aligned tiling of size n in \(\mathbb{R}^{d}\) , where d ≥ 2, admits a round-robin BSP of size \(O(n^{(d+1)/3})\) . On the other hand, there exist tilings of size n in \(\mathbb{R}^{d}\) for which every BSP has size Ω(n β(d) ), where \(\beta (3) = 4/3\) , and \(\lim _{d\rightarrow \infty }\beta (d) = (1 + \sqrt{5})/2 \approx 1.618\) .

In dimensions d = 3, the partition complexity of axis-aligned tilings of size n is O(n 4∕3), which is tight by a construction of Hershberger and Suri [8].

Applications

The initial and most prominent applications are in computer graphics: BSPs support fast hidden-surface removal and ray tracing for moving viewpoints [10]. Rendering is used for visualizing spatial opaque surfaces on the screen. A common and efficient rendering technique is the so-called painter’s algorithm. Every object is drawn sequentially according to the back-to-front order, starting with the deepest object and continuing with the objects closer to the viewpoint. When all the objects have been drawn, every pixel represents the color of the object closest to the viewpoint. Further computer graphics applications include constructive solid geometry and shadow generation. Other applications of BSP trees include range counting, point location, collision detection, robotics, graph drawing, and network design; see, for instance, [13] and the references therein.

In the original setting, the input objects of the BSP were assumed to be static. Recent research on BSPs for moving objects can be seen in the context of kinetic data structures (KDS) of Basch, Guibas, and Hershberger [2]. In this model, objects move continuously along a given trajectory (flight plan), typically along a line or a low-degree algebraic curve. The splitting hyperplanes are defined by faces of the input objects, and so they move continuously, too. The BSP is updated only at discrete events, though, when the combinatorial structure of the BSP changes.

Open Problems

  • What is the maximum partition complexity of n disjoint (d − 1)-dimensional simplices in \(\mathbb{R}^{d}\) for d ≥ 3?

  • What is the maximum partition complexity of n disjoint (axis-aligned) boxes in \(\mathbb{R}^{d}\) for d ≥ 3?

  • What is the maximum (axis-aligned) partition complexity of a tiling of n axis-aligned boxes in \(\mathbb{R}^{d}\) for d ≥ 4?

  • Are there families of n disjoint objects in \(\mathbb{R}^{d}\) whose partition complexity is super-quadratic in n?

  • How many combinatorial changes can occur in the kinetic BSP of n points moving with constant velocities in the plane?

In all five open problems, the dimension \(d \in \mathbb{N}\) of the ambient space \(\mathbb{R}^{d}\) is constant, and asymptotically tight bounds in terms of n are sought.