i
i
i
i
i
i
i
i
16.5. Constructive Solid Geometry 403
intersection, difference, and blend upon primitives (Ricci, 1973). The surface was
considered as the boundary between the half spaces f(p) < 1,defining the in-
side, and f(p) > 1 defining the outside. This initial approach to solid modeling
evolved into constructive solid geometry or CSG (Ricci, 1973; Requicha, 1980).
CSG is typically evaluated bottom-up according to a binary tree, with low-degree
polynomial primitives as the leaf nodes and internal nodes representing Boolean
set operations. These methods are readily adapted for use in implicit modeling,
and in the case of skeletal implicit surfaces, the Boolean set operations union
∪
max
, intersection ∩
min
and difference
minmax
are defined as follows (Wyvill et
al., 1999):
∪
max
f =
k−1
max
i=0
(f
i
) , (16.5)
∩
min
f =
k−1
min
i=0
(f
i
) ,
minmax
f =min
f
0
, 2 ∗iso −
k−1
max
j=1
(f
j
)
.
The Ricci operators are illustrated in Figure 16.18 for point primitives A
and B. For union (bottom left) the field at all points inside the union will be the
greater of f
A
() and f
B
(). For intersection (center), points in the region marked
as P
1
will have value min (f
A
(P
1
),f
B
(P
1
)) = 0, since the contribution of B will
be zero outside of its range of influence. Similarly, for the region marked as P
2
,
(influence of A is zero, i.e., the minimum) leaving only the intersection region
with positive values. Difference works similarly using the iso-value in the three
marked regions (P
i
) as follows:
f(P
0
)=min(f
B
(P
0
), 2 ∗ iso − f
A
(P
0
))
= min([iso, 1], [2 ∗ iso −1, iso])
=[2∗iso −1, iso] < iso
f(P
1
)=min(f
B
(P
1
), 2 ∗ iso − f
A
(P
1
))
=min([0, iso], [2 ∗ iso − 1, iso]) < iso
f(P
2
)=min(f
B
(P
2
), 2 ∗ iso − f
A
(P
2
))
= min([iso, 1], [iso, 2 ∗ iso]) >=iso
CSG operators create creases, i.e., C
1
discontinuities. For example, the min()
operator (Equation (16.5)) creates C
1
discontinuities at all points where f
1
(p)=
f
2
(p). When applied to two spheres, the discontinuities produced by this union
operator result in a crease on the surface, as shown in Figure 16.18, which is
the desired result. Discontinuities unfortunately extend into the field outside of