1.3 Solution Statement
2.1.2 Volumetric representation
Boundary representations are convenient for designers who want to work with the surface of the object rather than with its volume. Because of the partial definition of the object, it often leads to problems such as holes, self-intersections and inconsistencies. While a lot of research works in- vestigated fixing individual issues with BReps, the overall problem with BReps will always remain because a BRep does not describe a volumetric object but rather a set of boundary surface sheets. Volumetric represen- tations have also been explored and proved to be more robust, but come with a different set of issues.
2.1.2.1 Voxels
The simplest volumetric representation is a discrete set of cells or voxels (short for volume elements) representing the list of cells occupied by
the volume. Typically, a voxel set is stored in a 3D array where each cell is set to ”full” (inside) or ”empty” (outside). Sometimes, voxels can contain more information such as density, colours or scalars. This is often the case of data acquired through MRI or CT scans. The simplicity of this representation makes it convenient for most geometric operations as described in Payne and Toga (1992); Cohen-Or et al. (1998). It is very robust, and volume rendering is a well investigated topic (Coat 2010).
However, this representation is resolution dependent, and as a conse- quence, often memory consuming. To capture medium sized details, the resolution has to be relatively high. A grid of 512 cells in each dimen- sions yields 227 cells (more than 100 million cells). Additionally, if only
point membership in the Boolean form is stored, the geometry cannot be smoothed and has a distinct boxlike aesthetic (see figure 2.4). Some attempts have been made to improve voxel visual appearance, but these techniques remove sharp features (Barthe et al. 2002).
2.1.2.2 Implicit surfaces
An implicit surface is a conventional term to designate a zero-level (or another iso-level) point set defined by a continuous function of point coordinates in three dimensional space. A volume object bounded by an implicit surface is defined as follows:
f (p) < t p is inside the object f (p) = t p is on the surface f (p) > t p is outside the object
(2.2)
where t is the iso-level, p is any point in space. The implicit surface is not explicitly described, but instead the function f provides information about the points belonging to the iso-surface with the given function iso-level.
In Blinn (1982), the author introduces the summation of Gaussian functions, which can be used to model electron density maps of molecu-
(a)
Figure 2.5: Two metaballs blended together. Image from Wikipedia
lar structures and artistic shapes (see Figure 2.5). Wyvill et al. (1986) extended the idea to introduce soft objects, which allow for local sup- port and give smoother results. In Bloomenthal and Shoemake (1991), a set of simple primitives such as points, lines, rectangles and trian- gles are enveloped by using a simple bell curve function of the distance function to the primitives. These techniques are often called skeletal im- plicit surface primitives. The involved scalar field is called a compactly supported field (bump function), because the function takes the prede- fined value (iso-level) everywhere further away than a certain distance from the surface. Several other techniques are detailed in Wyvill et al.
(1999). Metamorphosis is also a quite simple task with implicit surfaces (Galin et al. 2000). More recently, implicit surfaces were used to support a powerful sketch-based modelling tool in Schmidt et al. (2006). Their focus is to provide an accessible interface to novice users.
2.1.2.3 Constructive Solid Geometry
Constructive Solid Geometry (CSG) is related to volume modelling as it represents an entire object with its interior and surface points. CSG
can be used to build complex solid objects from simple primitives and using simple operations. Primitives typically include the platonic solids, revolutions and simple sweeps. The object is defined by a tree of prim-
(a)
Figure 2.6: A CSG-tree
itives and operations. Each primitive defines a half space based on a predicate (a point is either inside or outside of the solid). Typically, op- erations are set regularized set-theoretic operations (union, intersection, difference) and affine transformations, although a few others are possi- ble (e.g., twist, taper). An example of a CSG tree is shown in figure
2.6. CSGis is restricted to homogeneous solids defined by the binary (or ternary) point membership classification. A detailed study of the CSG
basics can be found inRequicha (1980).
This representation is user-friendly. Any part of the tree can be mod- ified at any point of the modelling process which is important for the design process as some decisions can be postponed. Additionally, CSG
models are unambiguous and are always valid manifold models. The ma- jor issues with CSG are that CSG objects cannot be rendered directly by means of standard graphics hardware, and the set of operations is limited.
(a)
Figure 2.7: An FRep model, combining mechanical parts with sharp features and organic looking parts. Image courtesy of A. Pasko, (Pasko and Adzhiev 2004)
2.1.2.4 Function representation
FRep(Pasko et al. 1995) is a generalization of implicit surfaces andCSG. It defines an object with a procedurally evaluated function. The func- tion evaluation is done through traversal of a tree data structure with operations as nodes and primitives as leaves. Operations can take any number of arguments allowing us to mix several models of different di- mensionality into a single object. Figure 2.7 shows an example of an
FReptree, which incorporates sharp features and organic looking parts.
FRep is capable of incorporating several other representations such as voxels, meshes and point clouds as primitives into the tree (Adzhiev et al. 2000). It also offers numerous advanced operations such as space time blending (Pasko et al. 2004), bounded blending (Pasko et al. 2005) and multi-scale cellular structures (Fryazinov et al. 2013). FReps are a pow- erful modelling representation, because they allow us to parametrise a range of models where the parameters of the operations can be adjusted to create numerous diverse objects from a single template. The tree also allows for modifying both operations and primitives at any time. This also makesFRepobjects compact and resolution independent. The
volumetric modelling. It will be discussed further in the next section (section 2.2.5.1).