Graphics Reference
In-Depth Information
extent contains the non-zero extent of the implicit function. The implicit function values at the mesh
vertices are then interpolated along mesh edges to estimate the location of points that lie on the implicit
surface. Polygonal fragments are then constructed in each cell of the mesh by using any surface points
located on the edges of that mesh cell [ 10 ].
The best known implicit primitive is often referred to as the metaball and is defined by a central
point ( C ), a radius of influence ( R ), a density function ( f ), and a threshold value ( T ). All points in space
that are within a distance R from C are said to have a density of f ( distance ( P , C )/ R ) with respect to the
metaball (where distance ( P , C ) computes the distance between P and C and where distance ( P , C )/ R is
the normalized distance ). The set of points for which f ( distance ( P , C )/ R )
T ¼
0 (implicitly) defines
the surface, S .
In Figure 12.1 , r is the distance at which the surface is defined for the isolated metaball shown
because that is the distance at which the function,
f , evaluates to the threshold value. Desirable
attributes of the function,
f , are f (0.0)
¼
1.0,
f (0.5)
¼
0.5,
f (1.0)
¼
0.0, and (0.0)
¼ f´ (1.0)
¼
0.0.
A common definition for f , as proposed by Wyvill [ 20 ] , is Equation 12.1 .
s
4
9
17
9 s
22
9 s
6
4
2
f ðsÞ¼
1
(12.1)
Two generalizations of this formulation are useful. The first uses the weighted sum of a number of
implicit surface primitives so that the surface-defining implicit function becomes a smooth blend of the
individual surfaces ( Eq. 12.2 ) .
FðPÞ¼ S w i f i ðPÞT
(12.2)
The weights are arbitrarily specified by the user to construct some desired surface. If all of the weights,
w i , are one, then the implicit primitives are summed. Because the standard density function has zero
slope at one, the primitives will blend together smoothly. Using negative weights will create smooth
concavities. Several concavities can be created by making the weight more negative. Integer weights
are usually sufficient for most applications, but noninteger weights can also be used (see Figure 12.2 ).
The second generalization provides more primitives with which the user can build interesting
objects. Most primitives are distance based, and most of those are offset surfaces. Typical primitives
use the same formulation as the metaball but allow a wider range of central elements. Besides a single
normalized
distance
R
1
r
T
S
C
0
0
r/R
1
f
FIGURE 12.1
The metaball and a sample density function.
 
Search WWH ::




Custom Search