Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[2.1] 3D Imaging, Analysis and Applications-Springer-Verlag London (2012).pdf
Скачиваний:
12
Добавлен:
11.12.2021
Размер:
12.61 Mб
Скачать

154

W.A.P. Smith

Fig. 4.8 A 2D example of a Binary Space Partitioning tree

and branching at nodes representing the outcome of the binary test. This is a simple and elegant representation on which boolean operations and point classifications are easy to compute, though it potentially results in a high memory overhead. The representation was first proposed by Fuchs et al. [16] and is a popular representation in graphics, where calculation of visible triangles from arbitrary viewpoints is required.

In Fig. 4.8, we provide an example of a BSP tree. In this case, the tree operates in 2D and hence the binary tests determine which side of each line a point lies and the resulting object is a 2D area.

4.2.3.4 Constructive Solid Geometry

Constructive Solid Geometry (CSG) [34] is a representation for solid objects based on compositions of simple primitive solids. They are combined using boolean set operations. The primitives and operations can be stored efficiently in a binary tree in which the leaves contain primitives, nodes contain operators and the represented object lies at the root. Figure 4.9 shows an example of a complex solid constructed from a small number of primitives and operations. The CSG representation is intuitive and relates well to CAD interfaces. However, representing arbitrary solids in this way can prove inefficient. In the context of 3D imaging, CSG can be useful for applications with “humans in the loop”. For example, in content-based retrieval, a human must be able to construct a coarse 3D model with which to search. Another example is fitting a part-based model to 3D data (such as body parts to human motion data). In this case, the parts can be constructed by a human using CSG. Finally, for indexing 3D data, a very low-dimensional description of an object can be obtained by fitting a CSG model to the 3D data and determining similarity by comparing CSG trees.

4.2.3.5 Boundary Representations

Boundary representations (known as B-reps) [65] describe solids by defining the boundary between solid and non-solid. They are widely used in Computer Aided

4 Representing, Storing and Visualizing 3D Data

155

Fig. 4.9 An example of a CSG object represented by a binary tree of operations and primitives. Figure courtesy of [75]

Design. B-reps are composed of two parts. The first is the topology. This describes how the surface elements are connected and is specified in terms of faces, edges and vertices. See Fig. 4.10 for an example. The second part is the geometry, which specifies the shape of a face, edge or vertex in terms of surfaces, curves and points. A face is associated with a bounded portion of a surface and an edge with a bounded piece of a curve. The topology of a B-rep is stored in a data structure, most commonly the winged-edge which stores a face, edge and vertex table. Each edge stores pointers to its two vertices, the two faces adjacent to the edge and the four edges adjacent to both the edge and the adjacent faces. Each vertex and face stores a pointer to one of its adjacent edges. Adjacency relationship can therefore be computed in constant time. Compared to CSG representations, B-reps are more flexible and have a richer operation set.

Fig. 4.10 An example of the topology of a solid described by a B-rep