t-splines and t-nurccsstaff.aub.edu.lb/~anasri/tspline.pdf · t-splines and t-nurccs use knot...

8
T-splines and T-NURCCs Thomas W. Sederberg and Jianmin Zheng [email protected] [email protected] Computer Science Department Brigham Young University Almaz Bakenov [email protected] Embassy of Kyrgyz Republic Washington, D.C. Ahmad Nasri [email protected] Computer Science Department American University of Beirut Abstract This paper presents a generalization of non-uniform B-spline surfaces called T-splines. T-spline control grids permit T- junctions, so lines of control points need not traverse the entire control grid. T-splines support many valuable oper- ations within a consistent framework, such as local refine- ment, and the merging of several B-spline surfaces that have different knot vectors into a single gap-free model. The pa- per focuses on T-splines of degree three, which are C 2 (in the absence of multiple knots). T-NURCCs (Non-Uniform Rational Catmull-Clark Surfaces with T-junctions) are a su- perset of both T-splines and Catmull-Clark surfaces. Thus, a modeling program for T-NURCCs can handle any NURBS or Catmull-Clark model as special cases. T-NURCCs enable true local refinement of a Catmull-Clark-type control grid: individual control points can be inserted only where they are needed to provide additional control, or to create a smoother tessellation, and such insertions do not alter the limit sur- face. T-NURCCs use stationary refinement rules and are C 2 except at extraordinary points and features. CR Categories: I.3.5 [Computer Graphics]: Computa- tional Geometry and Object Modeling—curve, surface, solid and object representations; Keywords: B-spline surfaces, subdivision surfaces, local refinement 1 Introduction This paper introduces T-splines: non-uniform B-spline sur- faces with T-junctions. T-junctions allow T-splines to be locally refineable: control points can be inserted into the control grid without propagating an entire row or column of control points. The paper also presents a locally refineable subdivision surface called T-NURCCs (Non-Uniform Rational Catmull- Clark surfaces with T-junctions). In T-NURCCs, faces adja- cent to an extraordinary point can be refined without prop- agating the refinement, and faces in highly curved regions can also be refined locally. As in T-splines, individual con- trol points can also be inserted into a T-NURCC to provide finer control over details. T-NURCCs are a generalization of Catmull-Clark surfaces. Figure 1 shows how T-NURCC local refinement enables a T-NURCC tessellation to be far more economical than a globally-refined Catmull-Clark sur- face. T-splines can be used to merge non-uniform B-spline Figure 1: A Catmull-Clark mesh refined using T-NURCC local refinement. T-junctions are highlighted in the blow- up on the left. The T-NURCC has 2496 faces. A globally refined Catmull-Clark surface needs 393,216 faces to achieve the same precision. surfaces that have different knot-vectors. Figure 2 shows a hand model comprised of seven B-spline surfaces. The small rectangular area is blown up in Figure 3.a to magnify a hole where neighboring B-spline surfaces do not match exactly. The presence of such gaps places a burden on animators, who potentially must repair a widened gap whenever the model is deformed. Figure 3.b shows the model after being con- verted into a gap-free T-spline, thereby eliminating the need for repair. T-splines and T-NURCCs can thus imbue mod- els comprised of several non-uniform B-spline surfaces with the same air-tightness that Catmull-Clark surfaces extend to uniform cubic B-spline-based models. Figure 2: Model of a hand comprised of B-spline surfaces. 1.1 Related Work Previous papers have addressed local triangular tessellation refinement of subdivision surfaces [Velho and Zorin 2001; Kobbelt 2000]. In order to have the neighborhood of a new vertex at some uniform level, the 4-8 and 3 schemes im- pose the restriction of at most one refinement level differ-

Upload: hadieu

Post on 16-Apr-2018

218 views

Category:

Documents


2 download

TRANSCRIPT

T-splines and T-NURCCs

Thomas W. Sederberg and Jianmin Zheng

[email protected] [email protected]

Computer Science Department

Brigham Young University

Almaz Bakenov

[email protected]

Embassy of Kyrgyz Republic

Washington, D.C.

Ahmad Nasri

[email protected]

Computer Science Department

American University of Beirut

Abstract

This paper presents a generalization of non-uniform B-splinesurfaces called T-splines. T-spline control grids permit T-junctions, so lines of control points need not traverse theentire control grid. T-splines support many valuable oper-ations within a consistent framework, such as local refine-ment, and the merging of several B-spline surfaces that havedifferent knot vectors into a single gap-free model. The pa-per focuses on T-splines of degree three, which are C2 (inthe absence of multiple knots). T-NURCCs (Non-UniformRational Catmull-Clark Surfaces with T-junctions) are a su-perset of both T-splines and Catmull-Clark surfaces. Thus,a modeling program for T-NURCCs can handle any NURBSor Catmull-Clark model as special cases. T-NURCCs enabletrue local refinement of a Catmull-Clark-type control grid:individual control points can be inserted only where they areneeded to provide additional control, or to create a smoothertessellation, and such insertions do not alter the limit sur-face. T-NURCCs use stationary refinement rules and are C2

except at extraordinary points and features.

CR Categories: I.3.5 [Computer Graphics]: Computa-tional Geometry and Object Modeling—curve, surface, solidand object representations;

Keywords: B-spline surfaces, subdivision surfaces, localrefinement

1 Introduction

This paper introduces T-splines: non-uniform B-spline sur-faces with T-junctions. T-junctions allow T-splines to belocally refineable: control points can be inserted into thecontrol grid without propagating an entire row or column ofcontrol points.

The paper also presents a locally refineable subdivisionsurface called T-NURCCs (Non-Uniform Rational Catmull-Clark surfaces with T-junctions). In T-NURCCs, faces adja-cent to an extraordinary point can be refined without prop-agating the refinement, and faces in highly curved regionscan also be refined locally. As in T-splines, individual con-trol points can also be inserted into a T-NURCC to providefiner control over details. T-NURCCs are a generalization

of Catmull-Clark surfaces. Figure 1 shows how T-NURCClocal refinement enables a T-NURCC tessellation to be farmore economical than a globally-refined Catmull-Clark sur-face. T-splines can be used to merge non-uniform B-spline

Figure 1: A Catmull-Clark mesh refined using T-NURCClocal refinement. T-junctions are highlighted in the blow-up on the left. The T-NURCC has 2496 faces. A globallyrefined Catmull-Clark surface needs 393,216 faces to achievethe same precision.

surfaces that have different knot-vectors. Figure 2 shows ahand model comprised of seven B-spline surfaces. The smallrectangular area is blown up in Figure 3.a to magnify a holewhere neighboring B-spline surfaces do not match exactly.The presence of such gaps places a burden on animators, whopotentially must repair a widened gap whenever the modelis deformed. Figure 3.b shows the model after being con-verted into a gap-free T-spline, thereby eliminating the needfor repair. T-splines and T-NURCCs can thus imbue mod-els comprised of several non-uniform B-spline surfaces withthe same air-tightness that Catmull-Clark surfaces extendto uniform cubic B-spline-based models.

Figure 2: Model of a hand comprised of B-spline surfaces.

1.1 Related Work

Previous papers have addressed local triangular tessellationrefinement of subdivision surfaces [Velho and Zorin 2001;Kobbelt 2000]. In order to have the neighborhood of a new

vertex at some uniform level, the 4-8 and√

3 schemes im-pose the restriction of at most one refinement level differ-

a. B-spline surfaces b. T-splines

Figure 3: A gap between two B-spline surfaces, fixed with aT-spline.

ence between adjacent triangles. For quadrilateral subdivi-sion meshes, it is considered difficult to generate a locallyrefinable crack-free tessellation [Zorin and Schroder 2000].With T-NURCCs, local refinement away from extraordinarypoints has no notion of “level.” Hence, it is possible for localrefinement to produce an edge that has one face on one side,and any number of faces on the other side.

T-NURCCs are a modification of cubic NURSSes [Seder-berg et al. 1998]), augmented by the local refinement capa-bility of T-splines. T-NURCCs and cubic NURSSes are theonly subdivision surfaces that generalize non-uniform cubicB-spline surfaces to control grids of arbitrary topology and(equivalently) that generalize Catmull-Clark surfaces [Cat-mull and Clark 1978] to non-uniform knot vectors. How-ever, cubic NURSSes have complicated, non-stationary re-finement rules whereas NURCCs have stationary refinementrules. Furthermore, cubic NURSSes do not provide localrefinement whereas T-NURCCs do.

The literature on local control refinement of B-spline sur-faces (a single control point can be inserted without pro-pogating an entire row or column of control points) wasinitiated by Forsey and Bartels. Their invention of Hier-chical B-splines [Forsey and Bartels 1988] introduced twoconcepts: local refinement using an efficient representation,and multi-resolution editing. These notions extend to any re-fineable surface such as subdivision surfaces. T-splines andT-NURCCs involve no notion of hierarchy: all local refin-ment is done on one control grid on a single hierarchical“level” and all control points have similar influence on theshape of the surface.

Hierarchical B-splines were also studied by Kraft [Kraft1998]. He constructed a multilevel spline space which is alinear span of tensor product B-splines on different, hierar-chically ordered grid levels. His basic idea is to provide aselection mechanism for B-splines which guarantees linearindependence to form a basis. CHARMS [Grinspun et al.2002] focuses on the space of basis functions in a similarway, but in a more general setting and hence with more ap-plications. Weller and Hagen [Weller and Hagen 1995] stud-ied spaces of piecewise polynomials with an irregular, locallyrefinable knot structure. They considered the domain parti-tion with knot segments and knot rays in the tensor-productB-spline domain. Their approach is restricted to so-called“semi-regular bases.”

Our derivations make use of polar form [Ramshaw 1989],and we assume the reader to be conversant with polar labelsfor tensor-product B-spline surfaces.

1.2 Overview

T-splines and T-NURCCs use knot intervals to convey knotinformation. This is reviewed in §2.

T-splines are an enhancement of NURBS surfaces that al-low the presence of T-junction control points. We describe

T-splines by introducing in §3 a less structured form of theidea, that we call point-based B-splines, or PB-splines. T-splines are then discussed in §4, and local refinement is ex-plained in §5. The application of using T-splines for mergingtwo or more B-splines into a gap-free model is presented in§6.

NURCCs are obtained by placing a restriction on the def-inition of cubic NURSSes (introduced in [Sederberg et al.1998]) which gives NURCCs stationary refinement rules.T-NURCCs add to NURCCs the local refinement capability ofT-splines. This is discussed in §7.

While the notion of T-splines extends to any degree, werestrict our discussion to cubic T-splines. Cubic T-splinesare C2 in the absence of multiple knots.

2 Knot Intervals

A knot interval is a non-negative number assigned to eachedge of a T-spline control grid for the purpose of conveyingknot information. This notion was introduced in [Sederberget al. 1998]. In the cubic B-spline curve shown in Figure 4,

P0

P1

P2

P3P4

P5

d-1=1d0=1

d1=1

d2=2

d3=3

d4=1

d5=1

t=3 t=4

t=6

t=9

Knot Vector = [1,2,3,4,6,9,10,11]

Figure 4: Sample cubic B-spline curve

the di values that label each edge of the control polygon areknot intervals. Note how each knot interval is the differencebetween two consecutive knots in the knot vector. For a non-periodic curve, end-condition knot intervals are assigned to“phantom” edges adjacent to each end of the control polygon(in this case d−1 and d5). For all but the first and last edgesof the control polygon, the knot interval of each edge is theparameter length of the curve segment to which the edgemaps. Any constant could be added to the knots in a knotvector without changing the knot intervals for the curve.Thus, if we are given the knot intervals and we wish to infera knot vector, we are free to choose a knot origin.

Edges of T-spline and T-NURCC control grids are like-wise labeled with knot intervals. Since T-NURCC controlmeshes are not rectangular grids, knot intervals allow us toimpose local knot coordinate systems on the surface. Fig-ure 5.a shows a regular subgrid of a NURCC control grid.We can impose a local knot coordinate system on this re-gion, and therewith determine local polar labels for the con-trol points, as follows. First, (arbitrarily) assign P00 thelocal knot coordinates of (d0, e0). The local knot vectorsfor this regular subgrid are then {d} = {0, d0, d1, . . .} and{e} = {0, e0, e1, . . .} where

di =

i∑

j=0

dj ; ei =

i∑

j=0

ej

e0 e0 e0 e0

e1 e1 e1 e1

e2 e2 e2 e2

e3 e3 e3 e3

e4 e4 e4 e4

d0

d0

d0

d0

d1

d1

d1

d1

d2

d2

d2

d2

d3

d3

d3

d3

d4

d4

d4

d4

P00

P01

P02

P03

P10

P11

P12

P13

P20

P21

P22

P23

P30

P31

P32

P33

a. Bicubic patch

d2d1

e2

e1

P (s,t) (s+d2,t)(s-d1,t)

(s,t+e2)

(s,t-e1)

P has polar label

f(s-d1,s,s+d2;t-e1,t,t+e2 )

b. Knot coordinates

Figure 5: Region of a NURBS control mesh labeled withknot intervals.

and d−1 = e−1 = 0. The polar label for control point Pij ,with respect to this local knot coordinate system, is thusf(di−1, di, di+1; ei−1, ei, ei+1) and the surface defined by thisregular subgrid is

P(s, t) =∑

i

j

PijN3i (s)N3

j (t)

where N3i (s) are the cubic B-spline basis functions over {d}

and the N3j (t) are over {e}. The superscript 3 denotes de-

gree, not order.

3 PB-splines

(si0,ti2) (si1,ti2) (si2,ti2) (si3,ti2) (si4,ti2)

(si2,ti0)

(si2,ti1)

(si2,ti3)

(si2,ti4)

Figure 6: Knot lines for basis function Bi(s, t).

Tensor-product B-spline surfaces use a rectangular grid ofcontrol points. Our goal is to generalize B-spline surface toallow partial rows or columns of control points. We begin bydescribing a surface whose control points have no topologicalrelationship with each other whatsoever. We will refer to thissurface as a PB-spline, because it is point based instead ofgrid based. The equation for a PB-spline is

P(s, t) =

∑n

i=1PiBi(s, t)

∑n

i=1Bi(s, t)

, (s, t) ∈ D (1)

where the Pi are control points. The Bi(s, t) are basis func-tions given by

Bi(s, t) = N3i0(s)N

3i0(t) (2)

where N3i0(s) is the cubic B-spline basis function associated

with the knot vector

si = [si0, si1, si2, si3, si4] (3)

and N3i0(t) is associated with the knot vector

ti = [ti0, ti1, ti2, ti3, ti4] (4)

as illustrated in Figure 6. Thus, to specify a PB-spline, onemust provide a set of control points and a pair of knot vectorsfor each control point.

The green box outlines the influence domain Di =(si0, si4) × (ti0, ti4) for an individual control point Pi.Bi(s, t) and its first and second derivatives all vanish at (andoutside of) the green box. It is permissible for influence do-mains to not be axis-aligned, although our discussion willassume that they are axis-aligned.

PB-splines satisfy the convex-hull property. DenoteC(s, t) = {Pi|(s, t) ∈ Di}. Then clearly P(s, t) lies in theconvex hull of C(s, t).

D in (1) is the domain over which the entire PB-spline isdefined. The only restrictions on D is that

∑n

i=1Bi(s, t) > 0

for all (s, t) ∈ D and D is a single connected component.This implies that D ⊂ {D1 ∪ D2 ∪ . . . ∪ Dn}, but D doesnot need to be rectangular. Due to the convex hull prop-erty, if (s, t) ∈ D lies only in one influence domain Di, thenP(s, t) = Pi; if (s, t) ∈ D lies only in two influence domainDi and Dj , then P(s, t) lies on the line segment connectingPi and Pj ., etc. Thus, it is advisable to have each pointin D lie in at least three influence domains Di. In general,there is not an obvious “best” choice for D for a given setof Di.

D1

D2

D3

D4

a. PB−spline domain.

Figure 7: A cubic PB-spline with four control points.

Figure 7.a shows a parameter space in which is drawnthe Di for a PB-spline comprised of four blending functions.The resulting surface is shown to the right. The labels Di

are printed at the center of the respective domains, and apossible choice for D is outlined in red. Notice that a PB-spline has no notion of a control mesh; the knot vectors foreach basis function are completely independent of the knotvectors for any other basis function.

4 T-Splines

A T-spline is a PB-spline for which some order has been im-posed on the control points by means of a control grid calleda T-mesh. A T-mesh serves two purposes. First, it providesa more friendly user interface than does the completely arbi-trary PB-spline control points. Second, the knot vectors si

and ti for each basis function are deduced from the T-mesh.If a T-mesh is simply a rectangular grid with no T-junctions,the T-spline reduces to a B-spline.

Figure 8 shows the pre-image of a T-mesh in (s, t) pa-rameter space. The si denote s coordinates, the ti denote t

coordinates, and the di and ei denote knot intervals, with rededges containing boundary-condition knot intervals. Thus,for example, s4 = s3 + d3 and t5 = t4 + e4. Each vertexhas knot coordinates. For example, P1 has knot coordinates(s3, t2) and P2 has knot coordinates (s5 − d8, t3).

P1

P2

P3

s1 s2 s3 s4 s5

d0

d1d2 d3 d4

d5

d2 d6

d7

d8

t1

t2

t3

t4

t5

e0

e1

e2

e3

e4

e5

e6

e7

e8

e9

F

Figure 8: Pre-image of a T-mesh.

A T-mesh is basically a rectangular grid that allowsT-junctions. The pre-image of each edge in a T-mesh is aline segment of constant s (which we will call an s-edge) orof constant t (which we will call a t-edge). A T-junction isa vertex shared by one s-edge and two t-edges, or by onet-edge and two s-edges. Each edge in a T-mesh is labeledwith a knot interval, constrained by the following rules:

Rule 1. The sum of knot intervals on opposing edgesof any face must be equal. Thus, for face F in Figure 8,d2 + d6 = d7 and e6 + e7 = e8 + e9.

Rule 2. If a T-junction on one edge of a face can beconnected to a T-junction on an opposing edge of the face(thereby splitting the face into two faces) without violatingRule 1, that edge must be included in the T-mesh.

To each Pi corresponds a basis function Bi(s, t) (2) de-fined in terms of knot vectors si = [si0, si1, si2, si3, si4] (3)and ti = [ti0, ti1, ti2, ti3, ti4] (4). We now explain how to in-fer these knot vectors from the T-grid. The knot coordinatesof Pi are (si2, ti2). The knots si3 and si4 are found by con-sidering a ray in parameter space R(α) = (si2+α, ti2). Thensi3 and si4 are the s coordinates of the first two s-edges in-tersected by the ray (not including the initial (si2, ti2)). Theother knots in s and t are found in like manner.

Thus, for P1, si = [s1, s2, s3, s4, s5 − d8] and ti = [t1 −e0, t1, t2, t3, t4 + e9]. Likewise, for P2, si = [s3, s3 + d6, s5 −d8, s5, s5 + d5] and ti = [t1, t2, t3, t4, t5]. P3 is a boundarycontrol point. In this case, s3,0 and t3,4 do not matter, sowe can take si = [s1 − d0, s1 − d0, s1, s2, s2 + d7] and ti =[t1, t5 − e4 + e9 − e7, t5, t5 + e5, t5 + e5]. Once these knotvectors are determined for each basis function, the T-splineis defined using the PB-spline equation (1).

The motivation for Rule 2 is illustrated in Figure 9. Inthis case, the zero knot interval means that it is legal to havean edge connecting P with A, and is also legal to have anedge connecting P and B. However, these two choices willresult in different t knot vectors for P. Rule 2 resolves suchambiguity.

P

BA

d1 d2

d1 d20

0d1 d2

a.

P

BA

d1 d2

d1 d20

0d1 d2

b.

d1 d2

d1 d20

0d1 d2

P

BA

c.

Figure 9: Possible ambiguity.

Plainly, if the T-mesh is a regular grid, the T-spline re-duces to a tensor product B-spline surface.

5 Control Point Insertion

We now consider the problem of inserting a new control pointinto an existing T-mesh. If the sole objective of controlpoint insertion is to provide additional control, it is possibleto simply add additional control points to a T-mesh, andleave the Cartesian coordinates of the initial control pointsunchanged. Of course, this operation will alter the shape ofthe T-spline (at least, that portion of it within the influenceof the new control points).

It is usually more desirable to insert control points intoa T-mesh in such a way that the shape of the T-spline isnot changed. We now describe how to add a single controlpoint in this way. We will refer to this procedure of addinga single control point into a T-mesh without changing theshape of the T-spline as local knot insertion.

Consider the example in Figure 10 where control pointP′

3 is inserted on edge P2P4 using the knot intervals shown.We enforce the following

Rule 3. P′

3 can only be inserted if t1 = t2 = t4 = t5 (seeFigure 10). Recall that ti is the t-knot vector for basisfunction Bi. If the control point were being inserted on avertical edge, the four neighboring si knot vectors wouldneed to be equal.

Local knot insertion is accomplished by performing knotinsertion into all of the basis functions whose knot vectorswill be altered by the presence of the new control point. InFigure 10, the only such basis functions are B1, B2, B4,and B5 (the basis functions corresponding to control pointsP1, P2, P4, and P5). Using the algebra of polar forms,

P1 P2 P4 P5 P’1 P’2 P’3 P’4 P’5

d0 d1 d2 d3+d4 d5 d6 d7 d0 d1 d2

d3 d4

d5 d6 d7

e0

e1

e2

e3

a. Before insertion. b. After insertion.

Figure 10: T-mesh knot insertion.

and because of Rule 3, it is straightforward to show that

P′

1 = P1, P′

5 = P5,

P′

2 =d4P1 + (d1 + d2 + d3)P2

d1 + d2 + d3 + d4

, (5)

P′

4 =(d6 + d5 + d4)P4 + d3P5

d3 + d4 + d5 + d6

, and (6)

P′

3 =(d4 + d5)P2 + (d2 + d3)P4

d2 + d3 + d4 + d5

. (7)

Rule 3 means that it is not always possible to immediatelyadd a control point to any edge. For example, in Figure 11.a,Rule 3 does not allow A to be inserted because t2 is differentfrom t1, t4, and t5. However, if control points are first addedbeneath P1, P4, and P5 as shown in Figure 11.b, it thenbecomes legal to insert A.

A

P1 P2 P4 P5

a. A cannot be inserted.

A

P1 P2 P4 P5

b. A can be inserted.

Figure 11: T-mesh Knot Insertion.

Local knot insertion can only be performed on an existingedge. To insert a control point in the middle of a face, anedge through that face must first be created.

Local knot insertion is useful for creating features. Forexample, darts can be introduced into a T-spline by insertinga few adjacent rows of control points with zero knot intervals,as shown in Figure 12. Having two adjacent knot intervalsof value zero introduces a local triple knot, and the surfacebecomes locally C0 at that knot. The sharpness of the creaseis controlled by the placement of the inserted control points.

d2

d2

d2

d2

d2

d2

0

0

0

0

d3

d3

d3

d3

d3

d3

Figure 12: Inserting a dart into a T-mesh.

5.1 Standard T-splines

We define a standard T-spline to be one whose basis func-tions Bi(s, t) in equation (1) sum to one for every (s, t) ∈ D.Clearly, a tensor product B-spline surface is a standard T-spline. Likewise, a standard T-spline that undergoes knot

insertion remains a standard T-spline. Furthermore, a T-spline formed by merging two B-spline surfaces (as discussedin §6) is a standard T-spline.

A standard T-spline can be decomposed into polynomialbi-cubic patches. A non-standard T-spline can also be de-composed into bi-cubic patches, but they will be rationalpatches.

5.2 Extracting Bezier Patches

It is advantageous to represent in Bezier form the patchesthat comprise a T-spline, because a tessellation algorithmsuch as [Rockwood et al. 1989] can then be applied—withthe minor modification that each T-junction must map to atriangle vertex in the tessellation to assure that cracks willnot appear in the tessellation.

The domains of the Bezier patches that comprise astandard T-spline can be determined by extending all T-junctions by two bays, as illustrated in Figure 13. The rect-angles in Figure 13.b are Bezier domains. The reason forthis can be understood by considering the knot vectors forthe basis functions of each control point.

b. Bezier domains.a. T-mesh.

Figure 13: Bezier domains in the pre-image of a T-mesh.

Bezier control points can be obtained by performing re-peated local knot insertion. Recall that a B-spline surfacecan be expressed in Bezier form using multiple knots, andthat a zero-knot interval implies a double knot. For theknot interval configuration in Figure 14.b, the 4 × 4 grid ofcontrol points surrounding F are the Bezier control pointsof that patch. Thus, the Bezier control points for face F

d1 d2 d3

e1

e2

e3

F

0 0 d2 0 0

e2

0

0

0

0

F

a. Face F. b. Bezier control points.

Figure 14: Finding Bezier control points using local knotinsertion.

in Figure 14.a can be determined by performing local knotinsertion.

6 Merging B-splines into a T-spline

This section discusses how to merge two B-spline surfaceswith different knot vectors into a single T-spline. Often in

geometric modeling, portions of an object are modeled inde-pendently with different B-spline surfaces that have differentknot vectors, such as the hand in Figure 2. Figure 15 illus-trates the problem: the red and blue control grids are definedover different knot vectors. Merging them into a single B-spline requires that they have the same common knot vector,so knot insertion must first be performed before merging canproceed. As Figure 15.c illustrates, however, those requiredknot insertions can significantly increase the number of rowsof control points. If additional surfaces are subsequentlymerged onto these two surfaces, the number of knot linescan multiply further.

a. Patch 1 b. Patch 2 c. Merge of both patches

Figure 15: Merging two B-splines.

One possible solution to the problem of merging twoNURBS surfaces into a single surface without a prolifera-tion of control points is to use cubic NURSSes [Sederberget al. 1998]. Since cubic NURSSes allow different knot inter-vals on opposing edges of a face, two NURBS control gridscan be merged into a single control grid without propagat-ing knot lines. This approach was studied in [Bakenov 2001].Figure 16 shows the result of merging two identical B-splinecylinders with different knot vectors. Unfortunately, anyNURSS representation introduces an unsightly bump at thejunction of the two cylinders. This failed attempt at solvingthe merge problem using NURSSes motivated the creationof T-splines.

1

3

2

2

2

1

4

1

Figure 16: Merging two B-splines using cubic NURSSes.

The procedure using T-splines is illustrated in Figure 17.For a Cn merge (n ∈ {−1, 0, 1, 2}), n + 1 columns of con-trol points on one patch will correspond to n + 1 columnsof control points on the other patch. We consider first theC0 merge in Figure 17.a. To begin with, each B-spline musthave triple knots (double knot intervals) along the sharedboundary, as shown. For a C0 merge, one column of con-trol points will be shared after the merge. If the knot in-tervals for the two T-splines differ along that common col-umn, control points must be along the boundary edge sothat the knot intervals agree. In this example, the knotintervals on the red B-spline are 1, 3, 2, 2 and on the blueB-spline are 2, 1, 4, 1. After inserting offset control pointson each control grid along the soon-to-be-joined columns asshown, the common column of control points has knot inter-vals 1, 1, 1, 1, 2, 1, 1.

Typically in this process, the control points that are tobe merged will have slightly different Cartesian coordinates.For example, A on the red patch might differ slightly fromA on the blue patch. Simply take the average of those twopositions to determine the position of the merged controlpoint.

A C2 merge is illustrated in Figure 17.b. The basic ideais the same as for a C0 merge. The differences are thatfour knot intervals a, b, c, d must correspond between the twosurfaces, as shown. Also, three columns of control pointsmust be merged, as shown. Figure 18 shows the results of aC0 and a C1 merge. Figure 3 shows an application of thismerge capability in a NURBS model of a human hand. Thisis a C0 merge.

1

3

2

2

00 0 0

2

1

4

1

1

3

2

2a b dc a b c d

2

1

4

1

Initial control grids Initial control grids

1

3

2

200 0 0

2

1

4

1

A A

1

3

2

2a b dc a b c d

2

1

4

1

B B

Insert control points Insert control points

1

3

2

2

00

2

1

4

1

11

11

21

1

1

3

2

2dcba

2

1

4

1

Merge as T-spline Merge as T-splinea. C0 merge b. C2 merge

Figure 17: Merging two B-splines using T-splines.

a. Two B-splines grid b. C0 T-spline c. C1 T-spline

Figure 18: Merging of two B-splines.

7 T-NURCCs

We now present a modification of cubic NURSSes [Sederberget al. 1998] that we call NURCCs (Non-Uniform RationalCatmull-Clark Surfaces). T-NURCCs are NURCCs with T-junctions in their control grids, in the spirit of T-splines.

Both NURCCs and NURSSes are generalizations of tensorproduct non-uniform B-spline surfaces: if there are no ex-traordinary points, if all faces are four-sided, and if the knotintervals on opposing edges of each face are equal, NUR-CCs and cubic NURSSes both degenerate to non-uniformB-spline surfaces. NURCCs and NURSSes are also general-izations of Catmull-Clark surfaces: if all knot intervals areequal, NURCCs and cubic NURSSes both degenerates to aCatmull-Clark surface.

NURCCs are identical to cubic NURSSes, with one differ-ence: NURCCs enforce the constraint that opposing edgesof each four-sided face have the same knot interval whileNURSSes have no such restriction. It is for that reason thatNURSSes have non-stationary subdivision rules and NUR-CCs have stationary refinement rules. It is also for that rea-son that NURCCs are capable of local refinement, whereasNURSSes are not.

The refinement rules for NURCCs are thus identical to therefinement rules for NURSSes if we require opposing edgesof each four-sided face to have the same knot interval. Thoserefinement rules are discussed in [Sederberg et al. 1998].

We now discuss how T-junctions can be used to performlocal refinement in the neighborhood of an extraordinarypoint. To simplify our discussion, we first require that allextraordinary points are separated by at least four faces,and that all faces are four-sided. These requirements can bemet by performing a few global refinement steps, if needed.Thereafter, all refinement can be performed locally. For ex-ample, any suitably large regular subgrid of a NURCC con-trol grid can undergo local knot insertion, as discussed in §5.Also, refinement near an extraordinary point can be confinedto the neighborhood of the extraordinary point.

To explain how to do this, we first devise a way to performlocal knot insertion in the neighborhood of a single (valence-four) vertex in a T-spline. Referring to Figure 19, we begin

e2

e3

(1−ρ)e2

ρe2

ρe3

(1−ρ)e3

1

2

3 4

Figure 19: Local refinement about a valence-four controlpoint.

with the black control grid. Then, it is legal using the pro-cedure in §5 to insert all of the red control points in row 1,followed by row 2, followed by column 3, followed by column4. Then the green control points can legally be inserted inlike order, then the blue control points, etc. What is pro-duced is a local refinement in the immediate neighborhoodof one black control point. Note that this refinement schemecan split faces at any ratio ρ. For a valence-4 point, changingρ does not change the limit surface since we are merely do-ing B-spline knot insertion, but when we adapt this schemeto extraordinary points, ρ will serve as a shape parameter.Figure 21 shows the effects of changing ρ.

We now present the local refinement rules for T-NURCCsat an isolated extraordinary point. Referring to Figure 20,knot interval d1 is split into knot intervals ρd1 and (1 −ρ)d1; likewise for the other knot intervals adjacent to theextraordinary point. If ρ = 1

2and if all the initial knot

intervals are equal, the limit surface obtained using this localrefinement is equivalent to a Catmull-Clark surface.

Lower-case letters refer to knot intervals and upper-caseletters to points. Vertices A, B, C, D, Q, R, S, T are theinitial control points, prior to refinement. After refinement,these vertex points are replaced by new vertex points de-noted with primes: A′, B′, C′, D′, Q′, R′. The followingequations for A′, E1, and F1 are obtained from [Sederberget al. 1998]. All other equations are obtained by repeated

application of (5)–(7).

AB

D

C

T

R

Q

S

d0

d1

d2

hi-2

hi+2

G2H2

E2

hi-1

F i+1

hi+1

F i

G1

d1

ρ

e1ρ

e2ρ

F2

Q’

D’

B ’ A ’

e-1

d-1

F1H1

R ’

e2

e1

e0

hi

h4

Mi+1

Mi

M2

Figure 20: Local refinement about an n-valence controlpoint.

F1 =[e0 + (1 − ρ)e1][(d0 + (1 − ρ)d1)A + (ρd1 + d2)B]

(d0 + d1 + d2)(e0 + e1 + e2)

+[ρe1 + e2][(d0 + (1 − ρ)d1)C + (ρd1 + d2)D]

(d0 + d1 + d2)(e0 + e1 + e2)

There are three types of edge points: E, H, and G.

E2 = ρM2 + (1 − ρ)e2F1 + e1F2

e1 + e2

where

M2 =2ρd1 + d2 + h4

2(d0 + d1) + d2 + h4

B +2d0 + 2(1 − ρ)d1

2(d0 + d1) + d2 + h4

A.

Edge point H1 =ρd1[(ρe1 + e2)R + (e0 + (1 − ρ)e1)Q]

(d−1 + d0 + d1)(e0 + e1 + e2)

+[d−1 + d0 + (1 − ρ)d1][(ρe1 + e2)D + (e0 + (1 − ρ)e1)B]

(d−1 + d0 + d1)(e0 + e1 + e2)

Edge point G1 =ρe1 + e2

e0 + e1 + e2

R +e0 + (1 − ρ)e1

e0 + e1 + e2

Q.

There are five different types of vertex points: those thatreplace A, B, Q, D, and R. We will denote the new vertexpoint at A by A′, etc.

A′ = ρ2A + 2ρ(1 − ρ)

∑n−1

i=0miMi

∑n−1

i=0mi

+ (1 − ρ)2∑n−1

i=0fiFi

∑n−1

i=0fi

where n is the valence, mi = (hi−1 + hi+1)(hi−2 + hi+2)/2,and fi = hi−1hi+2.

B′ = (1 − ρ)e1H2 + e2H1

e1 + e2

[

ρd1

d−1 + d0 + d1

Q +d−1 + d0 + (1 − ρ)d1

d−1 + d0 + d1

B

]

Q′ = ρQ + (1 − ρ)e1G2 + e2G1

e1 + e2

D′ =ρd1ρe1S + [d−1 + d0 + (1 − ρ)d1]ρe1T

(d−1 + d0 + d1)(e−1 + e0 + e1)

+[ρd1R + (d−1 + d0 + (1 − ρ)d1)D][e−1 + e0 + (1 − ρ)e1]

(d−1 + d0 + d1)(e−1 + e0 + e1)

R′ =ρe1

e−1 + e0 + e1

S +e−1 + e0 + (1 − ρ)e1

e−1 + e0 + e1

R.

Local refinement at an extraordinary point is illustratedin Figure 1, which shows a T-NURCC that has undergonefour steps of local refinement. The yellow dots highlight fourT-junctions. Note that this locally-refined mesh has twoorders of magnitude fewer faces than it would have usingglobal Catmull-Clark refinement.

Figure 21: A T-NURCC showing the influence of the param-eter ρ. The initial control grid is on the top left, the limitsurface with ρ = 0.1 is on the top right, ρ = 0.5 is on thebottom left, and ρ = 0.9 is on the bottom right.

This discussion has assumed that extraordinary verticesare separated by at least four faces; this can always be ac-complished by performing a few preliminary global refine-ment steps. It is possible to derive local refinement rulesthat would not require such initial global refinement steps,but there are additional special cases to consider.

Away from extraordinary points, NURCCs are C2, ex-cept that zero knot intervals will lower the continuity. Atextraordinary points where all edges have the same knot in-terval value, an eigenanalysis for the valence 3 case showsλ1 = 1 > λ2 = λ3 > λ4 > · · · where, for example,

λ2 = λ3 =1 + 2ρ + ρ2 +

(ρ2 + 6ρ + 1)(ρ − 1)2

4ρ.

This gives analytic proof that for the valence three case, thesurface is G1 for any legal value of ρ ( 0 < ρ < 1). A similarresult can be obtained for valence five. For higher valence,the symbolic algebra expressions get unwieldy, but a sam-pling of specific values of ρ has not revealed any case wherethe G1 condition is not satisfied. If the knot intervals foredges neighboring on extraordinary point are not equal, thesituation is related to that analyzed and discussed in [Seder-berg et al. 1998], which observes that empirical evidencesuggests G1.

8 Conclusion

This paper presents the theoretical foundation for T-splinesand T-NURCCs. The formulation is simple and straightfor-ward to implement. T-splines and T-NURCCs permit truelocal refinement: control points can be added without al-tering the shape of the surface, and (unless there are knotintervals with a value of zero) the new control points can bemoved and the surface will remain C2.

Since T-NURCCs generalize NURBS and Catmull-Clarksurfaces, a modeling program based on T-NURCCs can han-dle any NURBS or Catmull-Clark model as a special case.

Several questions remain to be investigated. For example,we have presented sufficient conditions for a T-spline to bestandard. What are the necessary conditions? Also, a lo-cal knot insertion sometimes requires that other local knotinsertions must first be performed. Those local knot inser-tions might require others to be performed before they canbe, etc. Are there cases in which these prerequisites cannotall be satisfied? PB-splines are interesting in their own right.What are the fairness properties of PB-splines?

9 Acknowledgements

This work was funded in part by NSF grant CCR-9912411.Jianmin Zheng was also supported by NSF of China(69973042).

References

Bakenov, A. 2001. T-Splines: Tensor Product B-spline Surfaces

with T-Junctions. Master’s thesis, Brigham Young University.

Catmull, E., and Clark, J. 1978. Recursively Generated B-spline Surfaces On Arbitrary Topological Meshes. Computer-

Aided Design 10 , 350–355.

Forsey, D., and Bartels, R. H. 1988. Hierarchical B-splinerefinement. Computer Graphics 22, 4(August 1988), 205–212.

Grinspun, E., Krysl, P., and Schroder, P. 2002. Charms: Asimple framework for adaptive simulation. ACM Transactions

on Graphics 21, 3 (July), 281–290.

Kobbelt, L. 2000.√

3-subdivision. Computer Graphics, 103–112.SIGGRAPH 2000.

Kraft, R. 1998. Adaptive and linearly independent multilevel B-splines. In Surface Fitting and Multiresolution Methods, A. L.Mehaute, C. Rabut, and L. L. Schumaker, Eds. Vanderbilt Uni-versity Press, Nashville, 209–218.

Ramshaw, L. 1989. Blossoms are polar forms. Computer Aided

Geometric Design 6 , 323–358.

Rockwood, A. P., Heaton, K., and Davis, T. 1989. Real-timerendering of trimmed surfaces. Proceedings of SIGGRAPH 89 ,107–116.

Sederberg, T. W., Zheng, J., Sewell, D., and Sabin, M.

1998. Non-uniform recursive subdivision surfaces. Proceedings

of SIGGRAPH 98 (July), 387–394. ISBN 0-89791-999-8.

Velho, L., and Zorin, D. 2001. 4-8 subdivision. Computer

Aided Geometric Design 18, 5, 397–428.

Weller, F., and Hagen, H. 1995. Tensor product spline spaceswith knot segments. In Mathematical Methods for Curves and

Surfaces, M. Daehlen, T. Lyche, and L. L. Schumaker, Eds.Vanderbilt University Press, Nashville, 563–572.

Zorin, D., and Schroder, P., 2000. Subdivision for modelingand animation, SIGGRAPH’00 course notes.