that our fat surface reconstructions are easily evaluated for rapid display, and ... fp : F(p) = g; 2 ?1;1] is derivative continuous (C1 regular) and the contours ... loss, (b) an easily computable approximation error bound, (c) straightforward gen- ..... de ned by interpolating directional derivatives of up to order 1 at points vi() and.
Smooth Adaptive Reconstruction and Deformation of Free-Form Fat Surfaces Chandrajit L. Bajaj
Department of Computer Science, University of Texas, Austin, TX 78712 Guoliang Xu
y
State Key Laboratory of Scienti c and Engineering Computing, Chinese Academy of Sciences, Beijing Most manufactured (airfoils) and several naturally occurring objects (sea shells) have shell like structures, that is the boundary consists of surfaces with thickness. In this paper we call such surfaces \fat surfaces" or \fat boundaries". We present an adaptive reconstruction algorithm to model the boundary of such fat surface objects from twin clouds of points (unorganized scattered data) or nested boundary triangulation (organized data collection). The novelty of our scheme is an adaptive decimation scheme of fat boundaries, coupled to fat surfaces data approximation using an interval of isocontours of smooth trivariate polynomial spline functions, rather than a pair of inner and outer surface splines. This single spline representation of fat surfaces allows for interactive deformations of the boundary without worry of interference checks between inner and outer surface boundaries, a serious concern in the case when individual boundary surface splines are modi ed. We also show that our fat surface reconstructions are easily evaluated for rapid display, and additionally the approximation has quadratic precision. Key words. Geometric Modeling, Curves and Surfaces, Deformations, Triangle Decimation.
1 Introduction Most manufactured and several naturally occurring objects have shell like structures, that is the boundary consists of surfaces with thickness. In this paper we call such surfaces \fat surfaces" or \fat boundaries". The problem of constructing smooth approximations to fat surface objects arise in creating geometric models such as airfoils, tin cans, shell canisters, engineering castings, sea shells, the earth's outer crust, the human skin, to name just a few. One could solve this geometric modeling problem by using classical or existing methods of surface splines construction to construct individual boundary surfaces as well as mid-surfaces of the Research supported in part by NSF grants CCR 9732306 and KDI-DMS-9873326 y Project 19671081 supported by NSFC. Currently visiting Center of Computational
tion, University of Texas, Austin, TX.
1
Visualiza-
Fig 1.1: Left: Example input points and inner, outer triangulations. Middle: Smooth reconstruction of the fat surface F (p) = , 2 [?1; 1]; Right: Three mid-surfaces for = ?1; 0; 1.
Fig 1.2: Left: CT scan of a human knee. Middle: A pair of extracted C 0 isosurfaces
for the knee skeleton boundaries. Right: Smooth fat surface reconstruction of the knee skeleton.
fat boundaries. Besides the added space complexity of individually modeling the primary bounding surfaces, post local and/or global interactive surface modi cation would require extremely cumbersome surface-surface interference checks to be performed to preserve geometric model consistency. Our use of the term fat surfaces diers from that of Barnhill, Opitz and Pottmann [4] where this is used to denote functions on surfaces. We assume the free-form fat surface models of this paper satisfy the following: (1) The fat surface model is double sided, that is, there are two primary bounding free-form surfaces and these are disconnected. We label one of these two sides as positive and the other side as negative. (2). The two primary bounding surfaces are topologically similar and additionally possess similar geometric features. This occurs naturally for the aforementioned class of manufactured and natural objects as well as two simply connected and regularized isosurface triangulations of volumetric imaging data with a small dierence between the two isovalues(see e.g. Fig 1.2). Problem Description. As input we are given two dense point clouds D(0) = (1) q (0) (1) q (1) fd(0) l gl=1 , D = fdl gl=1 where points fdl g and fdl g are sampled respectively from the two primary boundary surfaces of a fat surface domain. The goal is to reconstruct a smooth, and compact polynomial spline model of the fat surface whose 0
2
pair of bounding surfaces provide surface approximations of D(0) and D(1) , respectively. Additionally mid-surfaces are also desired in several CAGD applications. In this paper, we present a smooth reconstruction of fat surface models by constructing a C 1 trivariate polynomial spline function F in IR3 such that each contour fp : F (p) = g; 2 [?1; 1] is derivative continuous (C 1 regular) and the contours F = ?1 and F = 1 the two bounding surfaces and provide approximations of point clouds D(0) and D(1) respectively. At the same time surfaces intermediate to the bounding surfaces, i.e. mid-surfaces are easily obtained as F = for 2 (?1; 1). Our Contributions We present a new and simple algorithm for reconstruction of free-form models with fat boundaries (section 2). This includes a new adaptive and consistent decimation algorithm (section 3), followed by a C 1 approximation of the input data, using trivariate rational polynomial functions on a prism scaold de ned by the decimated mesh (section 4). A fast evaluation procedure for rapid display (section 5) as well as local and global shape deformation techniques (section 6) are also presented. Our solution has some attractive features such as (a) quadratic precision, where boundaries which are quadratic polynomial functions are recovered without loss, (b) an easily computable approximation error bound, (c) straightforward generation of mid-surfaces of the fat boundaries, and (d) regularity guarantees of the fat surfaces even under local or global interactive shape deformations.
2 Algorithm Sketch and Related Prior Work Fat Surface Construction Step 1 Construct a triangular surface approximation DT (0) of point cloud D(0)(the inner) using any of the previous published schemes [1, 2, 3, 5, 7, 13, 14, 16]. We use the scheme of [3]. A topologically equivalent surface triangulation DT (1) with the same cardinality of vertices, edges and faces, is next constructed, approximating D(1) to a prespeci ed . There are several ways to accomplish this. The scheme we implemented is a displacement of each vertex dvl(0) of DT (0) in the direction of the (1) vertex normal n(0) is an -accurate approximation of a spherical l , yielding dvl which t of a sub-cloud neighborhood ND(1) of D(1) . The vertex normal is estimated as in step 2. The sub-cloud ND(1) are the closest six points to the intersection of the normal and cloud D(1) . In this way, the vertices DV (1) = fdvl(1) gql=1 of DT (1) are not necessarily a subset of D(1) . The triangulation DT (1) on D(1) is induced from DT (0) and thereby their sub-structures (vertices, edges and triangles) form matched pairs. We call the matched pair sub-structures fat vertices, fat edges, fat triangles and the fat triangulation. (1) (0) (1) Step 2 Generate normals n(0) l , nl at the vertices dl , dl for l = 1; ; q separately for the twin triangulated surfaces, using the normal estimation scheme based on the butter y interpolatory scheme of [6], [15]. Denote the matched normal pairs (1) (fat normals) fn(0) l ; nl g by Nl . All these normals are assumed to point to the positive side of the fat surface. Step 3 Decimate the fat triangulation [DT (0) ; DT (1)] using vertex removal based on an angle criterion for bounded normal variation, and group the removed data points
3
(a)
(b)
(c)
(d)
(e)
(f)
Fig 2.3: The algorithm pipeline. (a) Pair of clouds of points. (b) The reconstruction
triangulation pair. (c) The decimated fat triangulation. (d). Prism scaold. (e). Smooth fat surface reconstruction. (f). Mid-surfaces extracted.
into the interior of speci c volume cells for post least-squares approximation. The decimated fat triangulation is thus given by the decimated surface triangulation pair [T (0) , T (1) ] consisting of vertices V (0) = fvl(0) gNl=1 , and V (1) = fvl(1) gNl=1 , respectively. Angle conditions need to be met by the decimated fat triangulation to allow subsequent constructions of a non-degenerate prism scaold and a C 1 spline function having quadratic precision. See Section 3 for details. Step 4 Construct a prism scaold P from the matched fat surface triangulation [T (0) , T (1) ]. The prism scaold is the straight forward prism decomposition of the volume spanned by the matched twin surface triangulations and acts as the compact support of the nal C 1 rational spline approximation with as many pieces as prisms P of . See Section 4.1 for details. Step 5 Build a C 1 trivariate function F over P such that (1) (1) F (vl(0) ) = ?1; F (vl(1) ) = 1; rF (vl(0) ) = n(0) l ; rF (vl ) = nl ; for l = 1; ; N . See Section 4.2 for details. Step 6 Display the surface fp : F (p) = g for any given 2 [?1; 1]. See Section 5
for details. Step 7 [Deform] Modify the shape of the fat surface fp : F (p) = g for any given 2 [?1; 1] using the vertex normal pairs Nl . See Section 6 for details.
4
3 Adaptive Decimation of Fat Triangulations There are several decimation methods for triangulated surfaces (see e.g.[8], [11], [12] and [19]), however most of them are primarily based on geometric error bounds between original and decimated surfaces. As we shall explain, we however need a curvature dependent decimation scheme which primarily bounds the vertex normal variation between decimated and original surface triangulations. This enables both a non-degenerate prism scaold construction as well as a C 1 spline function approximation of the fat surface boundaries with quadratic precision (Theorem 4.2). Furthermore, the decimation process is applied to the fat triangulation (matched inner and outer surface triangulations), maintaining the topological similarity (vertex, edge, face adjacencies) between the two. o n (0) (0) (0) Let [Vi Vj Vk ] = [vi vj vk ]; [vi(1) vj(1) vk(1) ] be a triangle pair (fat triangle) of the decimated mesh T (0) , and Ni ; Nj ; Nk be the corresponding vertex normal pairs. Denote the volume prism cell n
Dijk (b1 ; b2 ; b3; ) = p = b1vi () + b2 vj () + b3 vk () :
X
o
bl = 1; 2 Iijk ;
where vl () = (1 ? )vl(0) + vl(1) = vl(0) + nl ; nl = vl(1) ? vl(0) , and interval Iijk = (a; b) for known a; b values correspond to the volume prism cell. Theorem 6.3 de nes the largest such open interval I. The tuple (b1 ; b2 , b3 ; ) is called the Dijk -coordinate of p within the (closed) volume prism cell. Then our bound on the allowable normal variation is captured by the following angle condition to be satis ed by all fat triangles (see Fig 3.1): (b(l) n(l) + b(l) n(l) + b(l) n(l) )T n(l) cos?1 (1l) (il) (2l) (jl) (3l) (kl) (sl) 1 ; kb1 ni + b2 nj + b3 nk kkns k
(3.1)
for any vs(l) 2 V (l) \ Dijk and l = 0; 1, where n(sl) is the normal at vs(l) and (b(1l) ; b(2l) ; b(3l); (l) ) is the Dijk -coordinate of vs(l) . The angle 1 is a user speci ed small real number and is a parameter to control the sparseness of the decimated mesh. Based on condition (3.1), we develop a fat vertex removal and data grouping decimation algorithm, where the removed fat vertices from the dense fat data are grouped into individual volume cells Dijk . We denote these grouped fat data sets as Gijk . The Gijk data is least squared approximated in the trivariate polynomial spline tting step. Algorithm. Adaptive Decimation
1. Initial step.
VertexList = fVl g, { the original fat vertex list. TriangleList = fTijk g, { the original fat triangle list. GroupList = fGijk g, { Gijk = f;g
2. Remove a vertex. Take a point pi 2 VertexList, then nd its neighboring vertices in TriangleList.
If the conditions (i){(iii) below are satis ed, then pi is removed from the VertexList. 5
(1)
vk v(1) i
p
nj+1
j-1
(0)
vk v (0) i
(1)
nj
vj
(0)
pj+1
pj
vj
Fig 3.1: Angle variation test: The white arrows are the averaging vectors b(1l) n(il) + b(2l) n(jl) + b(3l) n(kl) , the black arrows are the vectors n(sl) .
Fig 3.2: Convexity test by right-
handed rule: The vertices with black and white dots are labeled as convex and nonconvex, respectively.
Let Tijk ; (i; j; k) 2 Ki be all the triangles around pi . Let Tjkl ; (j; k; l) 2 Ki0 be the triangles formed by the re-triangulation after pi is removed (see step 3). (i). For each (j; k; l) 2 Ki0, T
n(l) n(l) < 2 ; cos?1 (sl) ijk (l)
(3.2)
kns kknijk k
l) is the normal of the triangle T (l) that points to the positive for s = j; k; l, where n(ijk ijk side. Note, 2 is an angle that controls the variation of the vertex normal from the corresponding face normal. (ii). For each p 2 Gjkl and each (j; k; l) 2 Ki0 , condition (3.1) is satis ed, where Gjkl is the re-grouping of the data set p [ ([(i;j;k)2Ti Gijk ) corresponding to the triangle Tjkl ; (j; k; l) 2 Ki0 . (iii). For each Tjkl ; (j; k; l) 2 Ki0 , (0) (1) jkl ; jkl > 3 ; (3.3) (0) (1) (0) (1) where jkl ; jkl is the minimal angle of the triangle Tjkl ; Tjkl , and 3 > 0 is the
lower bound of the angles of the triangulation.
3. Re-triangulation.
After pi is removed, the resulting hole is re-triangulated. We only consider the re-triangulation of one of the triangular surfaces that make up the fat triangulation. The other surface is triangulated in the same manner, preserving similar topology (1) (1) for the twin. Let p(1) be the vertex chain on the positive side that 0 ; p1 ; ; p n produces the hole. We assume the chain is arranged in a counter-clockwise manner. The hole is triangulated by: (3.1). If n 2, one triangle is returned. (3.2). If n 3, then label the point p(1) j as convex if (see Fig 3.2) (1) T (1) (1) (1) [(p(1) j +1 ? pj ) (pj ?1 ? pj )] nj > 0;
6
label it as non-convex otherwise, where denotes cross product. (3.3). Find (j; k), 0 j; k n, such that (1) (1) (i) p(1) j and pk are not adjacent in the closed chain fpi g. (1) (ii) p(1) j and pk are labeled as non-convex when there are more than one point (1) labeled as non-convex. Otherwise, p(1) j or pk is labeled as non-convex if there is only one non-convex point. (1) (iii) the geodesic distance from p(1) j to pk on the previous triangulation fTijk g, (i; j; k) 2 Ki is minimal. (1) (1) (1) (1) (1) Next divide the hole into two [p(1) j ; pj +1 ; ; pk ] and [pk ; pk+1 ; , pj ], where each chain of the holes is again arranged in counter-clockwise order and the index are modeled by n. For each hole, repeat steps (3.1){(3.3). To obtain a sequence of meshes at varying resolutions, one chooses a sequence of control parameters #1 ; #2 ; , and decimates the k-th level mesh by #k to get the k + 1-th level mesh. Here # = (1 ; 2 ; 3 ) (see the rst columns of Fig 3.3 and Fig 7.2). The adaptive property of our decimation scheme is also shown in Fig 3.3. To see the pairwise nature of the fat triangulation, T (1) is plotted in wireframe, T (0) is displayed as at shaded polygons. The adaptive property of the decimation is shown in Fig 3.3. To see the pairwise nature of the triangulation, T (1) is plotted by wire, T (0) is plotted by piecewise planes. Fig (a) is the original triangulation pair that has 25561 fat triangles. Fig (b), (c) and (d) that have 13141, 6765 and 4069 fat triangles respectively, are the decimated results. Each one is the decimation of the previous one with control angle 1 = 5 ; 15 and 30, respectively, and xed 2 = 60; 3 = 20. The decimation algorithm proposed in this section is based on the normal deviation from the linearly varying normal (see (3.1)). The basis behind this is Theorem 4.2. From this theorem we know that the normal of the constructed fat surface is approximately a linear function, that is the rst component of the inner product in (3.1). Hence condition (3.1) implies that if the normal at a vertex approximates the linear normal then this vertex can be removed, and we have good reason to believe that the fat surface constructed will approximate the removed vertex. Finally, we point out that the decimation algorithm could be easily extended to a scheme based on curvature variations by utilizing a discrete curvature computation (see e.g. [10]).
4 Construction of Prism Scaolds and C 1 Functions In this section, we construct rst a prism scaold and then a C 1 function on it.
4.1 Construction of Prism Scaolds
Suppose we are given a surface triangulation pair fT (0) ; T (1) g with assigned normals at each vertex of the triangulation. Without loss of generality, let the three vertices of each triangle be arranged counter clockwise if the observer is on the positive side of the fat triangulation. Additionally, assume the normals are oriented 7
(a) 25561 fat triangles
(a1) Outer boundary
(a2) Inner boundary
(b) 13141 fat triangles
(b1) Outer boundary
(b2) Inner boundary
(c) 6765 fat triangles
(c1) Outer boundary
(c2) Inner boundary
(d) 4069 fat triangles
(d1) Outer boundary
(d2) Inner boundary
Fig 3.3: C 1 smooth adaptive reconstruction of fat triangulations. (a) the dense input tri-
angulation pair. (b), (c) and (d) are decimated meshes with 1 = 5 ; 15 ; 30 , respectively, and xed 2 = 60 ; 3 = 20 . The middle and right columns are two boundary surfaces that are extracted from the constructed trivariate functions with iso-values of 1.0 and -1.0, respectively.
8
such that all the normals point to the positive side of the fat triangulation. More speci cally, we assume h
iT
vl(1) ? vl(0) n(l s) > 0; s = 0; 1; l = 1; ; N: (4.1) For each fat triangle pair, say [Vi Vj Vk ] of T (0) ; T (1) , de ne a volume Dijk (I ) as in section 3 I is a maximal open interval such that [0; 1] I and for any 2 I , the points vi (), vj () and vk () are not collinear and the three vectors ni , nj and nk point to the same side of the plane Pijk () = fp : p = p(b1 ; b2 ; b3 ; ); bi 2 IRg. We call Dijk (I ) an irregular triangular prism cell since the edges vl (), l = i; j; k, are,
in general, not parallel (see Fig 4.1). Theorem 9.3 in Appendix I de nes the largest open interval I .
4.2 Construction of a C 1 Function on the Prism Scaold
In this subsection, we construct the function Fijk = F jDijk (I ) on Dijk (I ). This will be done by rst constructing C 1 data(function values and gradients) on the edges of Dijk (I ) and then on the faces of Dijk (I ) and nally using a C 1 trans nite triangle interpolation to extend the function to the interior of Dijk (I ).
4.2.1 Construction of C data on a prism cell edge 1
At rst, we de ne C 1 data of F on the edge of Dijk (I ) using the C 1 data at vertices vi(s) ; vj(s) ; vk(s) for s = 0; 1 as follows.
3 3 T (1) 3 F (vl ()) = ? H03 () + nTl n(0) l H1 () + H2 () + nl nl H3 (); (1) rF (vl ()) = (1 ? )n(0) l + nl + (1 ? )A; where F (vl ()) satis es the following Hermite interpolation conditions F (vl (0)) = ?1; F (vl (1)) = 1; dF (vl (0)) = nT n(0) ; dF (vl (1)) = nT n(0) ; m m l l d d
and
H03 () = 1 ? 32 + 23 ; H13 () = ? 22 + 3 ; H23 () = 32 ? 23 ; H33 () = ?2 + 3
(4.2) (4.3)
are the basis functions of cubic Hermite interpolation on the interval [0; 1]. The coecient A in (4.3) is a constant vector in IR3 which is determined by the following conditions: 8 < dF (vl ()) (4.4) d = (Dnl F )(vl ()); 8 2 [0; 1]; : kAk = min : We can derive (see Appendix III) from (4.4) that A = nl bs =knlk2 ; bs = 6[F (vl(1) ) ? F (vl(0) )] ? 3nTl [rF (vl(0) ) + rF (vl(1) )]: (4.5) The imposed minimal condition on A is to guarantee the interpolant has quadratic algebraic precision (see Theorem 4.2). 9
(1)
vk
(1)
vi
F=1
(0) vk
v(0) i
p
F = -1
(1)
vj
(0)
vj
H ik
Fig 4.1: The volume prism cell Dijk enclosed by two triangles with white-dot vertices. The ruled surface Hik (t; ) passing through vi(0) ; vi(1) ; vk(0) and vk(1) .
Fig 4.2: The distance of a point p(black dot) to the inner and outer surfaces are bounded by the distance of the point to the white dots on the surfaces.
4.2.2 Construction of C data on a prism cell face 1
For the prism Dijk , the three boundary faces are the collection of points de ned by Hlm (t; ) = (1 ? t)vl () + tvm (); t 2 [0; 1]; 2 Iijk ; (4.6) for (l; m) 2 f(i; j ); (j; k); (k; i)g. On Hlm (t; ), the function value, denoted by Flm (t; ), is de ned by a cubic Hermite interpolation on the line segment [vl () vm ()] = fp 2 IR3 : p = Hlm (t; ); t 2 [0; 1]g by interpolating the directional derivatives D[svm()?vl ()]s F (vl ()) and D[svm ()?vl ()]s F (vm ()) for s = 0; 1. Hence, Flm (t; ) could be written as Flm (t; )= F (vl ())H03 (t) + [vm () ? vl ()]T rF (vl ())H13 (t) + F (vm ())H23 (t) + [vm () ? vl ()]T rF (vm ())H33 (t): (4.7) De ne rFlm (t; ) = rF (vl ())(1 ? t) + rF (vm ())t + t(1 ? t)B (t; ); (4.8) where B (t; ) is a rational function de ned by the following conditions: 8 > > @Flm (t; ) = [v () ? v ()]T rF (t; ); > > < > > > > :
m l lm @t @Flm (t; ) = [(1 ? t)n + tn ]T rF (t; ); l m lm @ kB (t; )k = min :
(4.9)
Again, the reason to impose the minimal condition on B (t; ) is to ensure the interpolant has quadratic precision. From (4.9), we can derive (see Appendix III) that d1 kd2 k2 ? d2 (dT1 d2 ) P + d2 kd1 k2 ? d1 (dT1 d2 ) Q B (t; ) = ; (4.10) kd k2 3
where
d1 = vm () ? vl (); d2 = (1 ? t)nl + tnm; d3 = d1 d2 ; 10
(4.11)
and
P () = 6[F (vm ()) ? F (vl ())] ? 3dT1 [rF (vl ()) + rF (vm ())]; vl ()) + 2t @F (vm ()) Q(t; ) = 2(1 ? t) @F (@ @ T rF (vl ())] T @ [ d @ + (1 ? t) 1 @ ? t [d1 rF@(vm ())] ? nTm rF (vl ()) ? nTl rF (vm ()):
(4.12)
(4.13)
4.2.3 Construction of a C function on a prism cell Having the function values Flm and gradients rFlm on the boundary face Hlm (t; ) 1
of Dijk , we can apply any C 1 trans nite triangular interpolant over the triangle ijk () to construct the function Fijk from the data on the boundary of the triangle. In this paper, we use the C 1 side-vertex scheme de ned by Theorem 3.1 in [17] with certain extensions. The scheme for a typical triangle pair [V1 V2 V3 ] of T is the following:
F123 (b1 ; b2 ; b3; ) = with
3 X
i=1
Wi (b1 ; b2; b3 )Di (b1 ; b2 ; b3 ; ) + E (b1 ; b2 ; b3; )
(4.14)
(4.15) Wi (b1 ; b2 ; b3 ) = (b b ) + ((bbj bbk )) + (b b ) ; 2 3 1 3 1 2 i = 1; 2; 3; i 6= j 6= k 6= i, 1 is a given integer and Di (b1 ; b2 ; b3 ; ) are de ned by interpolating directional derivatives of up to order 1 at points vi () and pi (b1 ; b2 ; b3; ) := 1?bjbi vj () + 1?bkbi vk () and in the direction di (b1 ; b2 ; b3, ) := ? 1?bjbi ek () ? 1?bkbi ej (), respectively. That is, Di (b1 ; b2 ; b3 ; ) = Bi (b1 ; b2 ; b3 ; ) + Pi (b1 ; b2 ; b3; ); (4.16)
where
Bi (b1 ; b2 ; b3 ; ) = F (pi (b1 ; b2 ; b3 ; ))H03 (bi ) + di (b1 ; b2 ; b3 ; )T rF (pi (b1 ; b2 ; b3; ))H13 (bi ); Pi (b1 ; b2; b3 ; ) = F (vi ())H23 (bi ) + di (b1 ; b2 ; b3 ; )T rF (vi ())H33 (bi ); and (i; j; k) 2 f(1; 2; 3); (2; 3; 1); (3; 1; 2)g, ek () = vj () ?vi (); ej () = vk () ? vi (). X E (b1 ; b2 ; b3 ; ) = b21 b22 b23 (4.17) (cl1 l2 l3 + wl1 l2 l3 )Bll1 l2 l3 (b1 ; b2 ; b3 ) l1 +l2 +l3 =l
is free. That is, E (b1 ; b2 ; b3 ; ) has no in uence on the function value and the rst order partials of F at the boundary of Dijk since it has the factor b21 b22 b23 . This term can be used to t data in the volume Dijk to get a better approximation. If there are no data available, E (b1 ; b2 ; b3; ) could be taken as zero. The function 11
Bll1 l2 l3 (b1 ; b2 ; b3) in E (b1 ; b2 ; b3 ; ) is the well-known Bernstein-Bezier polynomial on a triangle. The extensions to the side-vertex scheme(in which = 2) is that we allow to be any positive integer.
Theorem 4.1 The function F de ned by F jDijk = Fijk is C continuous over P ijk Dijk and interpolates the
C data at each vertex of T
1
1
Theorem 4.2 If the given data on the vertices of a fat triangle, say [Vi Vj Vk ], are
computed from a trivariate polynomial of degree at most 2, then the constructed function Fijk coincides with the polynomial if E in (4.14) is chosen to be zero.
4.3 Error Computation for Fat Surface Approximations
After the decimation step, the data points, denoted as Gijk , that are not the vertices of the decimated fat triangles are grouped into the volume prism cells Dijk for each fat triangle [Vi Vj Vk ]. The fat surface patch for this fat triangle provides an approximation to these data points. Now we compute a bound of the distance(error) from a point to a speci ed surface Fijk = , 2 [?1; 1] (see Fig 4.2). a. For p(l) 2 Gijk , compute the volume coordinate (b(1l) ; b(2l) , b(3l) ; (l) ). ) (b(l) ; b(l) ; b(l) ) as explained later in section 5 b. For (b(1l) ; b2(l) ; b3(l) ) compute (min 1 2 3 and equation (5.1) Then the approximation error of the point p(l) to the surface is bounded by ) (b(l) ; b(l) , b(l) )j[b(l) kv (1) ? v (0) k + b(l) kv (1) ? v (0) k + b(l) kv (1) ? v (0) k], since j(l) ? (min 3 2 1 3 2 1 j j i i k k (b l ; b l ; b l ))k kp l ? p(b l ; b l ; b l ; min (b l ; b l ; b l ))k b l kvi ( l ) ? vi (min (b l ; b l ; b l ))k +b l kvj ( l ) ? vj (min (b l ; b l ; b l ))k +b l kvk ( l ) ? vk (min The Dijk -coordinate of a point p 2 Dijk could be computed as follows: Let ( )
( ) 1
( ) 2 ( ) 1 ( ) 2 ( ) 3
( ) 3
( )
( )
( ) 1
( ) 2 ( )
( )
( )
( )
( )
( ) 3 ( ) 1 ( ) 1
( ) 2 ( ) 2
( ) 3 ( ) 3
( ) 1
( ) 2
( ) 3
p = b1 vi () + b2vj () + b3 vk (); b1 + b2 + b3 = 1: (4.18) Then p ? vk () = [vi () ? vk (); vj () ? vk ()] [b1 ; b2 ]T . Therefore det [p ? vk (); vi () ? vk (); vj () ? vk ()] = 0: (4.19) (4.19) is a polynomial of degree 3 in . Solving the equation for the unknown , we choose the solution of the equation such that the solution of (4.18) satis es bi 0 for i = 1; 2; 3 and b1 + b2 + b3 = 1. Then (b1 ; b2 ; b3 ; ) is the required Dijk -coordinate of p. Hence, the approximation error bound is easy to compute. The fact behind this is that the surface point and any other point in the volume Dijk are parameterized with (b1 ; b2 ; b3 ) as independent parameters. Therefore, the error of a point to the surface is computed just like the error of a point to a classical function. 12
5 Evaluation and Display of the Fat Surface Spline Often we wish to evaluate the surface F = for a given 2 [?1; 1]. LetP[Vi Vj Vk ] be any triangle pair of fT (0) ; T (1) g. Then for each (b1 ; b2 ; b3 ), bi 0; bi = 1, ) = () (b ; b ; b ) such that determine (min min 1 2 3 () ) = ; F ijk (b1 ; b2 ; b3 ; min () 1 1 min ? 2 = min ? 2 : Fijk (b1 ; b2 ; b3 ; ) = :
(5.1)
) ). The main task here is to The surface point is de ned by p = p(b1 ; b2 ; b3; (min ) for each (b ; b ; b ). It follows from (4.16) that D (b ; b ; b ; ) is a compute (min 1 2 3 i 1 2 3 rational function of . It is in the form 2 3 2 + N3 F0 + F1 + F2 2 + F3 3 + N0 +DN+1 D+ N+ (5.2) D2 2 : 0 1 Hence () := Fijk (b1 ; b2 ; b3; ) is a rational function of in the form (5.2). The ) . nearest zero to 21 of () ? is the required (min Although () ? = 0 is a nonlinear algebraic equation, () ? can be approximated by a polynomial of degree at most 3, since the rational term in (5.2) is small compared with the polynomial term. Hence, taking the roots of the polynomial part as an initial value, and then using Newton iteration, we obtain the required solution. The computation shows that this approach is very eective. Let F~ijk (b1 ; b2 ; ) = Fijk (b1 ; b2 ; 1 ? b1 ? b2; ). The surface normal is computed by # " ~ @ F~ijk @ F~ijk T ? 1 @ Fijk (5.3) rFijk = Tijk (b1 ; b2 ; b3 ; ) @b ; @b ; @ : 1
2
It should be noted that the matrix Tijk (b1 ; b2 ; b3 ; ) in (5.3) is nonsingular if the points v1 (); v2 () and v3 () are not collinear and the vector b1 ni + b2 nj + b3nk is not parallel to the plane Pijk ().
6 Deformation of the Fat Surface
6.1 Deformation via vertex normals
Under the interpolation condition, namely, the fat surface passes through the vertices, the normal at each vertex has signi cant in uence on the shape of the constructed fat surface. Although the normals, in general, are obtained by some estimation procedure, one can however use these normals as shape control \handles" to the designed fat surface. The geometric eect of the vertex normal change is obvious. They determine the orientation of the fat surface at the vertices. It is not dicult to see the following properties of normal in uence to the shape of the surface. 1. The in uence is local. That is, the normals at one vertex pair will in uence only the patches that surround the vertex. 13
(a)
(b)
(c)
(d)
(e)
(f)
(g) c = 10000
(h) c = -10000
Fig 6.1: Shape Deformations of the Fat Surface 2. . The vertex normal can in uence the thickness of the constructed fat surface. At each pair of matched vertices, if the two normals are close, then the thickness tends to change uniformly. If the two normals are dierent, then the change in the thickness of the surface is rapid. We point out that the normals at the vertices cannot be chosen arbitrarily. They should satisfy condition (4.1), though this condition is not very restrictive. Examples to show the in uence of vertex normals are given in Fig 6.1. (a) gives a simple triangulation pair that only has one interior vertex. (b) is the fat surface construction with normals shown on the gure. Next we change the normals at the interior vertex(keeping the normals on the boundary vertices unchanged). The changed surface and normals are shown in (c) and (d). (e) and (f) show the eect of the normal on the thickness of the surface. In (e), the normals at each vertex pair are nearly similar, compared with the normals shown in (f). Hence the thickness of the fat surface in (e) is more uniform than that of the fat surface in (f). Note that, the normals at each vertex pair of the top three gures in Fig 6.1 are the same, hence the thickness of the surface changes uniformly.
6.2 Deformation via E (b1 ; b2 ; b3; )
As mentioned above, the in uence of the normal on the fat surface shape is around the speci c vertex. To change the shape of the interior of a triangular patch without changing the boundary, we use E (b1 ; b2; b3 ; ) de ned in (4.17). For simplicity, we take E (b1 ; b2 ; b3 ; ) = c(b1 b2 b3 )2 : (6.1) That is, it does not depend on and has only one parameter c. If c increases, the surface at the center part is depressed down(away from the normals, see (g) of Fig 6.1) to the negative side of the surface. If c decreases, the surface at the center part 14
lifts up (towards the normals, see (h) of Fig 6.1). The input triangles and normals in (g) and (h) are the same as the input of (b)(where c = 0). In (g) and (h), c are chosen to be 10000 and ?10000, respectively. Comparing with (b), great changes of the shape can be seen. Models of the teapot showing the eect of E (b1 ; b2 ; b3 ; ) are given in Fig 7.2 (the third column), where we choose E (b1 ; b2 ; b3 ; ) = (c + w)(b1 b2 b3 )2 : (6.2)
7 Conclusions and Examples We have described a new approach to constructing adaptive multiresolution geometric models of shell structures. We have shown that the interpolant has quadratic precision and the error bound of the approximation is easy to compute. The implementation shows the eectiveness of our methods. Examples are given in Fig 7.1 and 7.2. The rst and third rows of Fig 7.1 show the given fat triangulation. The second and fourth rows are the corresponding fat surface construction. These examples exhibit the adaptive and smooth nature of the construction. In all these gures, the parameter c in (6.1) is chosen to be zero. The gures in the rst column of Fig 7.2 show the adaptive reconstruction. (a1) is the input triangulation. The following three, (a2), (a3) and (a4), are the smooth construction on the decimated meshes. The second column of Fig 7.2 shows decimation and smooth construction again. Fig (b1) is a dense input triangulation, (b2) is the decimated result, (b3) is the smoothing of the decimated mesh and (b4) shows isophotes on the smooth surface. The third column of Fig 7.2 shows the eect of term E in (4.14). (c2) shows the decimated mesh of (c1) and the removed outer vertices. (c3) and (c4) are the smooth tting of the decimated mesh, shown with isophotes. (c3) uses a non-zero E (b1 ; b2; b2 ; ) in the form (6.2) to t the removed points in each prism. (c4) uses zero E . The isophote lines on the gures show that the shape of the surface is slightly improved by the term E .
References
[1] N. Amenta, M. Bern, and M. Kamvysselis. A New Voronoi-Based Surface Reconstruction Algorithm,. In Computer Graphics Proceedings, Annnual Conference series, ACM SIGGRAPH98, pages 415{421, 1999. [2] D. Attali. r-regular shape reconstruction from unorganized points. In ACM Symposium on Computational Geometry, pages 248{253, 1997. Nice, France. [3] C. Bajaj, F. Bernardini, and G. Xu. Automatic Reconstruction of Surfaces and Scalar Fields from 3D Scans. In Computer Graphics Proceedings, Annnual Conference series, Proceedings of SIGGRAPH95, ACM SIGGRAPH95, pages 109{118, 1995. [4] R.E. Barnhill, K. Opitz, and H. Pottmann. Fat surfaces: a trivariate approach to triangle-based interpolation on surfaces. Computer Aided Geometric Design, 9:365{ 378, 1992. [5] Brian Curless and Marc Levoy. A volumetric method for building complex models from range images. In Holly Rushmeier, editor, SIGGRAPH 96 Conference Proceedings, Annual Conference Series, pages 303{312, 1996.
15
(a1) 4629 fat triangles
(b1) 2976 fat triangles
(c1) 1283 fat triangles
(a2) Smooth fat surface
(b2) Smoothing of (b1)
(c2) Smoothing of (c1)
(d1) 40912 fat triangles
(e1) 5069 fat triangles
(f1) 4421 fat triangles
(d2) Smooth fat surface
(e2) Smoothing of (e1)
(f2) Smoothing of (f1)
Fig 7.1: Figs are arranged in pair. Figs (a1), (b1), (c1), (d1), (e1) and (f1) show the fat triangulation, and gure (a2), (b2), (c2), (d2), (e2) and (f2) are the corresponding C 1 smooth fat surface constructions. To show the shell structure, some closed surfaces are cutaway to explore the interior.
16
(a1) 14672 fat triangles
(b1) 20216 fat triangles
(c1) 2256 fat triangles
(a2) 7528 fat triangles
(b2) 2119 fat triangles
(c2) Decimated Mesh
(a3) 2414 fat triangles
(b3) 2119 fat triangles
(c3) E 6= 0, isophotes
(a4) 1160 fat triangles
(b4) Isophotes
(c4) E 0, isophotes
Fig 7.2: The gures in the rst column show the multiresolution fat surface reconstruction.
(a1) is the input triangulation. The following three, (a2), (a3) and (a4), are the C 1 smooth fat surface over the decimated fat triangulations. Fig (b1) is the dense input fat triangulation, (b2) is the decimation result, (b3) is the C 1 smoothing of the decimated result and (b4) shows isophotes on the smooth surface(see [9], [18]). The third column shows the eect of term E (b1 ; b2 ; b2 ; ) in (4.14). (c2) is the decimated mesh of (c1). (c3) and (c4) are the smooth tting of the decimated mesh with using non-zero and zero E .
17
[6] Nira Dyn, David Levin, and John A. Gregory. A butter y subdivision scheme for surface interpolation with tension control. ACM Transactions on Graphics, 9(2):160{ 169, April 1990. [7] Herbert Edelsbrunner and Ernst P. Mucke. Three-dimensional alpha shapes. 1992 Workshop on Volume Visualization, pages 75{82, 1992. [8] T. S. Gieng, B. Hamann, K. I. Joy, G. L. Schussman, and I. J. Trotts. Constructing hierarchies for triangle meshes. IEEE Transaxtions on Visualization and Computer Graphics, 4(2):145{161, 1998. [9] S. Hahmann. Surface Interrogation: Visualization Techniques for Surface Analysis. In C. L. Bajaj, editor, Data Visualization Techniques. John Wiley & Sons Ltd, 1999, to appear. [10] B. Hamann. Curvature approximation for triangulated surfaces. In G. Farin, H. Hagen, and H. Noltemeier, editors, Geometric Modelling, Computing Suppl. 8, pages 139{ 153. Springer-Verlag, 1993. [11] B. Hamann. A data reduction scheme for triangulated surfaces. Computer Aided Geometric Design, 11(2):197{214, 1994. [12] H. Hoppe, T. DeRose, T. Duchamp, M. Halstend, H. Jin, J. McDonald, J. Schweitzer, and W. Stuetzle. Piecewise Smooth Surfaces Reconstruction. In Computer Graphics Proceedings, Annnual Conference series, ACM SIGGRAPH94, pages 295{302, 1994. [13] Hugues Hoppe, Tony DeRose, Tom Duchamp, John McDonald, and Werner Stuetzle. Surface reconstruction from unorganized points. In Edwin E. Catmull, editor, Computer Graphics (SIGGRAPH '92 Proceedings), volume 26, pages 71{78, July 1992. [14] Choi B. K., Shin H. Y., Yoon Y.I., and Ramaraj R. Triangulation of scattered data in 3D space. Computed-Aided Design, 20:239{248, 1988. [15] L. Kobbelt. Discrete fairing. In Tim Goodman and Ralph Martin, editors, The Mathematics of Surfaces VII, pages 101{129. Information Geometers, 1996. [16] D. Moore and J. Warren. Approximation of dense scattered data using algebraic surfaces. In Proc. of the 24th Hawaii Intl. Conference on System Sciences, pages 681{690, Kauai, Hawaii, 1991. [17] G.M. Nielson. The side-vertex method for interpolation in triangles. J. Approx. Theory, 25:318{336, 1979. [18] T. Poeschl. Detecting surface irregularities using isophotes. Computer Aided Geometric Design, 1(2):163{168, 1984. [19] G. Schroeder, J. A. Zarge, and W. E. Lorensen. Decimation of Triangle Meshes. In Computer Graphics Proceedings, Annnual Conference series, ACM SIGGRAPH92, pages 65{70, 1992.
8 Appendix I: Conditions on the Fat Triangulation In this section, we give conditions for a fat triangulation T under which the function F and its gradient rF are well de ned.
De nition 8.1(see de nition 3.1 of [4] ). A triangle ijk () is called non-degenerate if its vertices are not collinear and the vectors nl , l = i; j; k point to the positive side of the triangle. A volume Dijk (I ) which is formed by only non-degenerate triangles is called non-degenerate. 18
Theorem 8.3 Let pijkl () = det[nl ; vj () ? vi (); vk () ?vi()]; l = i; j; k. As( )
sume
l) () > 0; 8 2 [0; 1]; l = i; j; k: p(ijk (8.1) Consider the real numbers 1 ; ; s (s 6) that solve one of the three equations l) () = 0; l = i; j; k and de ne a = max(?1; f : < 0g), of degree 2: p(ijk l l b = min(+1; fl : l > 1g) and I = (a; b), Then I is the largest interval containing [0; 1] such that Dijk (I ) is non-degenerate. Proof. It is easy to see that a triangle ijk () is non-degenerate if and only if l) () > 0; nTl [vj () ? vi ()] [vk () ? vi ()] = p(ijk (8.2) l = i; j; k, where denotes cross product of two vectors. The assumption (8.1) l) (0) > 0; p(l) (1) > 0, for l = i; j; k , then p(l) () > 0 implies that [0; 1] I . Since p(ijk ijk ijk l) (a) = 0 for l = i or l = j or l = k if a > ?1, for 2 (a; b) and l = i; j; k. Since p(ijk hence a is the in mum of the interval of that contains [0; 1] and makes (8.2) hold. Similarly, b is the maximum of such an interval. Therefore, I is the largest interval such that Dijk (I ) is non-degenerate. 2 Theorem 8.4 Let [Vi Vj Vk ] be a fat triangle of fT (0), T (1)g. Then both the function Fijk and its gradient rFijk are well de ned on Dijk (I ). Proof. Let 2 I . Since ni ; nj ; nk are not parallel to the plane Pijk () and point
to the positive side of the plane, det(nl ; vj () ? vi (); vk () ? vi ()) > 0; l = i; j; k: Hence for any bi 0; bj 0; bk 0; bi + bj + bk = 1 X
l=i;j;k
bl det [nl ; vj () ? vi (); vk () ? vi ()]
= det
P
X
l=i;j;k
bl nl ; vj () ? vi (); vk () ? vi () > 0:
l=i;j;k bl nl is not parallel to the plane Pijk (). Hence the matrix Tijk (b1 ; b2 ; b3; ) = [v1 () ? v3 (); v2 () ? v3 (); b1 ni + b2nj + b3 nk ]T
That is,
is nonsingular. Let F~ijk (b1 ; b2; ) = Fijk (b1 ; b2 ; 1 ? b1 ? b2 ; ). Then we have # " ~ @ F~ijk @ F~ijk T ? 1 @ Fijk rFijk = Tijk (b1 ; b2 ; b3 ; ) @b ; @b ; @ : 1
2
Fijk ; @ Fijk and @ Fijk are well This implies that the gradient rFijk is well de ned if @@b @b2 @ 1 de ned. This is true if rFlm , (l; m) 2 f(i; j ); (j; k); (k; i)g are well de ned. Hence we onlyPneed to verify that the denominator of rFlm is positive. Note that the vector l=i;j;k bl nl is not parallel to the boundary of the triangle ijk (). Hence, the non-zero vectors d1 and d2 de ned in (4.11) are not parallel. Therefore, the denominator of rFlm = kd1 k2 kd2 k2 ? (dT1 d2 )2 is positive. 2 ~
19
~
~
9 Appendix II: Regularity of the Fat Surface
The fat surface is the collection fp : F (p) = ; 8 2 [?1; 1]g. Since F (p) = is a nonlinear equation, we need to specify the appropriate real patch F (p) = . LetP[Vi Vj Vk ] be any triangle pair of fT (0) ; T (1) g. Then for each (b1 ; b2 ; b3), bi ) = () (b ; b ; b ) such that 0; bi = 1, determine (min min 1 2 3 () ) = ; F ijk (b1 ; b2 ; b3 ; min () 1 1 min ? 2 = min ? 2 : Fijk (b1 ; b2 ; b3 ; ) = :
() ). We say the fat surface is The surface point is de ned by p = p(b1 ; b2 ; b3; min regular if the surface F (p) = , de ned as above, is smooth for each xed in [?1; 1]. Therefore, an important problem here is how to construct a regular fat surface. In the construction of F , there is one degree of freedom left unused, that is, the length of the normal at each vertex. We now provide three strategies to (1) normalize the normals n(0) l and nl (1) (i). Normalize n(0) l and nl , respectively, such that F (vl ()) is a linear function of . This is obtained by the condition
T (1) nTl n(0) l = nl nl = 2:
(9.1)
(1) (ii). Normalize n(0) l and nl simultaneously such that F (vl ()) is a quadratic function of . This is obtained by the condition (1) nTl (n(0) l + nl ) = 4:
(9.2)
(1) (iii). Normalize n(0) l and nl simultaneously such that the interval [?; 1+ ]( > T (1) 0) on which F (vl ()) is monotonic is as large as possible. Let a = nTl n(0) l ; b = nl nl and be the normalization multiplier. Let G(t) = F (vl ((1 + 2)t ? )); t 2 [0; 1]. Then G0 (t) could be written in Bernstein polynomial form: G0 (t) = b0 (; )B02(t) + b1 (; )B12 (t) + b2 (; )B22 (t); where b0(; ) = ?12(1 + ) + a(1 + 4 + 32 ) + b(2 + 32 ); b1(; ) = 6 + 12(1 + ) ? (a + b)(1 + 3 + 32 ); b2(; ) = ?12(1 + ) + b(1 + 4 + 32 ) + a(2 + 32 ): From bi (; ) 0; i = 0; 1; 2, which are sucient conditions for G0 (t) 0 on [0; 1], we derive the following conditions: (1). If a = b, then = +1 and the normalization requirement is (9.1). (2). If a < b, then is the positive root of the equation a + 4ax + (5a ? b)x2 + 2(a ? b)x3 = 0. Since a > 0; a ? b < 0, this equation has only one positive root. (3). If a > b, then is the positive root of the equation b + 4bx + (5b ? a)x2 + 2(b ? a)x3 = 0. The normalization multiplier of the normals is given by = [6 + 12(1 + )]=[(a + b)(1 + 3 + 32 )]. From the construction of Fijk , we observe that, for xed b1; b2 ; b3 , Fijk (b1 ; b2 , b3 ; ) nearly keep the linearity or quadraticity or monotonicity of F (vl ()); l =
20
Fig 9.1: () for Linear
Fig 9.2: () for Quadratic F (vl ()).
F (vl ()).
Fig 9.3: () for Monotonic F (vl ()).
i; j; k. This is true because the rational term in (4.8) is relatively small comparing with the polynomial term and since the interpolant has quadratic precision. This monotonicity will make the zero of Fijk (b1 ; b2 ; b3 ; ) simple. Hence the surface point is regular. Fig 9.1{9.3 show the curve () := Fijk (b1 ; b2 ; b3; ) for one triangle pair [Vi Vj Vk ] and dierent b1 ; b2 ; b3, where
vi(0) = (3:3; 0:0; 0:0)T ; vi(1) = (3:5; 0:0; 0:0)T ; T n(0) i = (4:3; 0:0; 0:0) ; T n(1) i = (5:3; 0:0; 0:0) ;
vj(0) = (3:2; 0:0; 0:5)T ; vj(1) = (3:4; 0:0; 0:6)T ; T n(0) j = (3:8; 0:0; 1:7) ; T n(1) j = (4:6; 0:0; 2:1) ;
vk(0) = (3:0; 1:0; 0:0)T ; vk(1) = (3:1; 1:0; 0:0)T ; T n(0) k = (3:3; 2:0; 0:0) ; T n(1) k = (3:6; 2:8; 0:0) :
10 Appendix III: Derivations and Proofs
The derivation of A in (4.5)
The two sides of the rst equation of (4.4) are polynomials of degree 2. It is easy to see that the polynomials 1 ? ; ; (1 ? ) form the basis set of the polynomial space of degree 2. Hence, the left-handed side of the rst equation of (4.4) could be written as dF (vl ()) = D F (v(0) )(1 ? ) + D F (v(1) ) + (1 ? )b
with
d
nl
l
nl
l
s
bs = 6[F (vl(1) ) ? F (vl(0) )] ? 3nTl [rF (vl(0) ) + rF (vl(1) )]: (10.1) Note that ?bs =3 is the leading coecient of F (vl ()). The right-handed side of the rst equation of (4.4) could be written as
(Dnl F )(vl ()) = Dnl F (vl(0) )(1 ? ) + Dnl F (vl(1) ) + (1 ? )nTl A: Then (4.4) is equivalent to the following system of equations ( nTl A = bs ; kAk = min : The solution of this system is A = nl bs =knlk2 . 21
(10.2)
The derivation of B(t; )
From (4.9), we can derive that 8 [vm () ? vl ()]T B (t; ) = P (); > > < [(1 ? t)nl + tnm]T B (t; ) = Q(t; ); (10.3) > > : kB (t; )k = min; where P () and Q(t; ) are de ned by(4.12)-(4.13). That is, P is a polynomial of degree 3 in , Q(t; ) is a polynomial of degree one in t and degree 2 in . Let d1 = vm () ? vl (); d2 = (1 ? t)nl + tnm; d3 = d1 d2 ; and let dT3 B (t; ) = R(t; ). Then B (t; )T = [P; Q; R][d1 ; d2 ; d3 ]?1 ; (10.4) where R is determined such that kB (t; )k = min. Since [d1 ; d2 ; d3 ]T [d1 + d2 ; d2 + d1 ; d3 ] = diag kd1 k2 + dT1 d2 ; kd2 k2 + dT1 d2 ; kd3k2 ; where = ?dT1 d2 =kd2 k2; = ?dT1 d2 =kd1k2 , and kd1 k2 kd2 k2 ? (dT1 d2 )2 = kd3 k2, we have kd3 k2 [d1 ; d2 ; d3 ]?1 = d1 kd2 k2 ? d2 (dT1 d2 ); d2 kd1 k2 ? d1 (dT1 d2 ); d3 T : Therefore, kB (t; )k2 = kd1k4 [P; Q; R] e1 kd2 k2 ? e2 (dT1 d2 ); e2 kd1 k2 ? e1 (dT1 d2 ); e3 T[P; Q; R]T 3 2 1 = P kd k2 + Q2 kd k2 ? 2PQ(dT d ) + R2 ;
kd k where ei 2 IR is the unit vector in the i-th direction. Hence, kB (t; )k = min if R 0. It follows from (10.4) that d kd k ? d (dT d ) P + d kd k ? d (dT d ) Q : B (t; ) = kd k 3
2
4
1
2
1
3
1
2
2
2
1
2
2
3
1
2
1
1
2
2
The Proof of Theorem 4.1. Since E (b ; b ; b ; ) and its rst order partial 1
2
3
derivatives are zero on the boundary of Dijk , we ignore this term in the following. From Theorem 8.4 we know that function Fijk and its partial derivatives are well de ned on the volume Dijk . It is easy to see that Wi have the properties: 3 X
i=1
Wi = 1;
Wi jbj =0 = ij :
(10.5)
22
Consider a typical triangle pair [V1 V2 V3 ]. We have
F123 jbi =0;bj bk >0 =
3 X
[Wl Dl (b1 ; b2 ; b3 ; )]jbi =0;bj bk >0 l=1 = Di (b1 ; b2 ; b3 ; )jbi =0;bj bk >0 = Fjk (bk ; );
(10.6) where (i; j; k) 2 f(1; 2; 3); (2; 3; 1); (3; 1; 2)g. That is, F is continuous on the face Hjk (t; ), t 2 (0; 1). Now consider the gradient of F . Since D1 = D2 = D3 on the boundary of Dijk , we have
rF jbi 123
;bj bk >0 =
=0
+
3 X
l=1
[rWl Dl (b1 ; b2 ; b3 ; )]jbi =0;bj bk >0
3 X
l=1
[Wl rDl (b1 ; b2 ; b3 ; )]jbi =0;bj bk >0
= rDi (b1 ; b2; b3 ; )jbi =0;bj bk >0 = rBi (b1 ; b2 ; b3; )jbi =0;bj bk >0 : (10.7) Now assume i = 1 and compute rBi (b1 ; b2; b3 , )jbi =0;bj bk >0 from (4.16). 2 #T " T T 3 v 1 () ? v3 () ~ ~ ~ @ B1 ; @ B1 ; @ B1 = 4 v2 ()T ? v3 ()T 5 rF23 (b3 ; ); (10.8) @b1 @b2 @ T T b n + b n 2 j 3 k b1 =0;b2 b3 >0 where B~1 (b1 ; b2 ; ) = B1 (b1 ; b2 ; 1 ? b1 ? b2 ; ). Then by (5.3) we have rF123 jb1 =0;b2 b3 >0 = rB1 jb1 =0;b2 b3 >0 = rF23 (b3 ; ): (10.9) (10.9) implies that function F is C 1 on H23 (t; ) for t 2 (0; 1). Now consider C 1 continuity at vi (); i = 1; 2; 3. For i = 1, we shall prove that the directional derivative of F123 at v1 () in any given direction d is de ned by dT rF (v1 ()). Let d = a[v2 () ? v1 ()] + b[v3 () ? v1 ()] + cn1 be a given direction. We may assume, without loss of generality, a + b = 1. Let 3 X
C (t) = bi (t)vi ( + ct); i=1 b1(t) = (1 ? at ? bt); b2 (t) = at; b3 (t) = bt: Then C (t) is a quadratic space curve passing through v1 (). The curve is regular at v1 () with tangent vector d. Consider the derivative of F123 (C (t)) at t = 0. Since ) a W3 (b1 (t); b2 (t); b3 (t)) = (1 ? at ?(1bt?)at(a? bt + b ) + (abt) ; dj W3 (b1 (t);b2 (t);b3 (t)) j exist for j = 0; 1. Similarly, dj Wi (b1 (t);b2 (t);b3 (t)) j exist for t=0 t=0 dtj dtj i = 1; 2 and j = 0; 1. From the de nition of Di (b1 ; b2 ; b3 ; ), we know that rD1 (vi ()) = rD2 (vi ()) = rD3 (vi ()) = rF (vi ()); 23
for i = 1; 2; 3. Therefore,
3 dX W ( b i 1 (t); b2 (t); b3 (t))Di (b1 (t); b2 (t); b3 (t); (t)) dt i=1 t=0 3 X d W (b (t); b (t); b (t)) D (b (0); b (0); b (0); (0)) = i 1 2 3 i 1 2 3 dt t=0 i=1 3 X d D (b (t); b (t); b (t); (t)) + Wi (b1 (t); b2 (t); b3 (t)) dt i 1 2 3 t=0 i=1 3 d X W (b (t); b (t); b (t)) = F (v1 ()) dt i 1 2 3 i=1 t=0
+ dT rF (v1 ())
3 X
i=1
Wi (b1 (0); b2 (0); b3(0)) = dT rF (v1 ()):
That is, the function F is C on v1 (). 2 The proof of Theorem 4.2. To prove the theorem, we only need to show that the de ned C 1 data on the edges, faces and volume of Dijk are exact. That is, they are the same as the values obtained by evaluating the polynomial p at the corresponding points. Consider rst the data de ned by (4.2) and (4.3) on the edges vl (). Since F (vl ()) is de ned by cubic Hermite interpolation, it coincides with p, if p is a polynomial of degree 2. Hence the leading coecient of F (vl ()) is zero. Also bs de ned by (10.1) is zero and rp is a polynomial vector of degree 1. Hence equation (4.3) implies that rF (vl ()) rp(vl ()), that is, the data on the edge vl () is exact. The fact that the de ned data on the edge is exact implies that Flm (t; ) de ned by (4.7) is exact, and is a polynomial of degree 2 in t for each xed . Hence, the leading coecient of Flm (t; ) about variable t, which is ?P ()=3, is zero. That is, P () 0. Note that Q(t; ) de ned by (4.13) satis es the following equation Q(t; )t(1 ? t) = @Flm (t; ) ? dT [rF (v ())(1 ? t) + rF (v ())t] ; 1
@
l
1
m
where the left-handed side of the equation is a polynomial of degree 2 in t for each . Hence Q(t; ) does not depend on t. That is, T Q(t; ) = dF (vl ()) + d[d1 rF (vl ())] ? nT rF (v ()) ? nT rF (v ()) l m m l d d h i i = nTl rF (vl(0) ) ? rF (vm(0) ) + [vm(0) ) ? vl(0) ]T rF (vl(1) ) ? rF (vm(0) ) h
h
i
h
+ nTl rF (vm(0) ) ? rF (vm(1) ) + nTm rF (vl(1) ) ? rF (vl(0) )
i
= nTl r2 p[vl(0) ? vm(0) ] + [vl(0) ? vm(0) ]T r2 pnl + nTm r2 pnl ? nTl r2 pnm : Note that r2 p is a constant symmetric matrix. Hence Q(t; ) 0. It follows from (4.10) that B (t; ) 0. Hence, rFlm (t; ) is linear function in t for each . That is, rFlm (t; ) rp(Hlm (t; )). 24
Since the function values and gradients are exact at edges and faces of the prism Dijk , the function Di (b1 ; b2 , b3 ; ); i = 1; 2; 3 de ned by (4.16), which is a cubic Hermite interpolation, is also exact. Therefore, their average is exact, that is, Fijk p. 2
25