Graphics Reference
In-Depth Information
is that the two curves satisfy some not unrealistic coherence condition. Basically, one
assumes that the curves are closed, planar, coherent in size and shape, and mutually
centered. By transforming the planar curves in a preprocessing stage one can always
arrange it so that this is the case. [GanD82] describes an algorithm that runs in time
O(m + n) using a heuristic that seems to work well in practice. [GanD82] also has ref-
erences to other work. We refer the reader to that paper for details.
Meyers et al. ([MeSS92]) describe a skinning algorithm that handles the corre-
spondence problem without requiring overlapping contours and generates a tiling
even in the presence of relatively complex branching of contours and without adding
new vertices. Park and Kim ([ParK96]) address the surface-fitting problem. They rep-
resent contour curves as cubic closed B-spline curves with a common knot vector and
find an approximation to the skinning surface that is a C 2
bicubic closed B-spline
surface.
Next, we consider the skinning problem for a sequence of curves that are B-
splines and describe the standard algorithm for creating a skinning B-spline surface.
Algorithm 14.7.1 outlines the steps. Let
n
Â
() =
()
pu
N u
p
, ,
0
££
j k
,
j
i d
,
i j
i
=
0
be the parameterization of the curve C j after steps 1-3 in the algorithm. Piegl and
Tiller ([PieT95]) suggest defining the parameters w j and knots v j in Step 4 as follows
in order to match the chordal lengths:
Inputs:
A sequence of B-spline curves p 0 (u), p 1 (u), º , p k (u)
Output:
A skinning B-spline surface p(u,v) for these curves
Step 1: Change the domain of the curves, if necessary, so that they all have the same domain.
Step 2: Arrange it so that all curves have the same degree. Use the degree elevation algorithm
to raise the degree of any particular curve to the maximum degree d of all the curves.
Step 3: Merge the knots of all the curves into a knot vector {u i }. For each curve use the knot
refinement algorithm to get a new B-spline that has {u i } as its knot vector. All the
curves will now have the same knot vector. Let p 0,i , p 1,i , º , p n,i be the control points
of the ith curve.
Step 4: Choose a degree e (£ k) for the v-direction, parameters {w j }, and a knot vector {v j }.
Step 5: For each j, 0 £ j £ n , let q j (v) be the B-spline of degree e that interpolates the points
p j,0 , p j,1 , º , p j,k and that satisfies q j (w i ) = p i,j . Let q 0,j , q 1,j , º , q k,j be the control
points of the B-spline q j (v).
Step 6: The skinning surface is then defined to be the tensor product B-spline surface p(u,v)
that has control points q i,j and knot vectors {u i } and {v j }.
Algorithm 14.7.1.
A B-spline skinning algorithm.
Search WWH ::




Custom Search