T-splines and T-NURCCs
Thomas W. Sederberg and Jianmin Zheng
tom@cs.byu.edu zheng@cs.byu.edu
Computer Science Department
Brigham Young University
Almaz Bakenov
bakenov@kyrgyzstan.org
Embassy of Kyrgyz Republic
Washington, D.C.
Ahmad Nasri
anasri@aub.edu.lb
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 Tjunctions,
so lines of control points need not traverse the
entire control grid. T-splines support many valuable operations
within a consistent framework, such as local refinement,
and the merging of several B-spline surfaces that have
different knot vectors into a single gap-free model. The paper
focuses on T-splines of degree three, which are C2 (in
the absence of multiple knots). T-NURCCs (Non-Uniform
Rational Catmull-Clark Surfaces with T-junctions) are a superset
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 surface.
T-NURCCs use stationary refinement rules and are C2
except at extraordinary points and features.
CR Categories: I.3.5 [Computer Graphics]: Computational
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 surfaces
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 adjacent
to an extraordinary point can be refined without propagating
the refinement, and faces in highly curved regions
can also be refined locally. As in T-splines, individual control
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 surface.
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 blowup
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 converted
into a gap-free T-spline, thereby eliminating the need
for repair. T-splines and T-NURCCs can thus imbue models
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 p3 schemes impose
the restriction of at most one refinement level differa.
B-spline surfaces b. T-splines
Figure 3: A gap between two B-spline surfaces, fixed with a
T-spline.
ence between adjacent triangles. For quadrilateral subdivision
meshes, it is considered diffcult to generate a locally
refinable crack-free tessellation [Zorin and Schr oder 2000].
With T-NURCCs, local refinement away from extraordinary
points has no notion of \level." Hence, it is possible for local
refinement 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 [Sederberg
et al. 1998]), augmented by the local refinement capability
of T-splines. T-NURCCs and cubic NURSSes are the
only subdivision surfaces that generalize non-uniform cubic
B-spline surfaces to control grids of arbitrary topology and
(equivalently) that generalize Catmull-Clark surfaces [Catmull
and Clark 1978] to non-uniform knot vectors. However,
cubic NURSSes have complicated, non-stationary re-
finement rules whereas NURCCs have stationary refinement
rules. Furthermore, cubic NURSSes do not provide local
refinement whereas T-NURCCs do.
The literature on local control refinement of B-spline surfaces
(a single control point can be inserted without propogating
an entire row or column of control points) was
initiated by Forsey and Bartels. Their invention of Hierchical
B-splines [Forsey and Bartels 1988] introduced two
concepts: local refinement using an efficient representation,
and multi-resolution editing. These notions extend to any re-
fineable surface such as subdivision surfaces. T-splines and
T-NURCCs involve no notion of hierarchy: all local refinment
is done on one control grid on a single hierarchical
\level" and all control points have similar in
uence on the
shape of the surface.
Hierarchical B-splines were also studied by Kraft [Kraft
1998]. He constructed a multilevel spline space which is a
linear span of tensor product B-splines on different, hierarchically
ordered grid levels. His basic idea is to provide a
selection mechanism for B-splines which guarantees linear
independence to form a basis. CHARMS [Grinspun et al.
2002] focuses on the space of basis functions in a similar
way, but in a more general setting and hence with more applications.
Weller and Hagen [Weller and Hagen 1995] studied
spaces of piecewise polynomials with an irregular, locally
refinable knot structure. They considered the domain partition
with knot segments and knot rays in the tensor-product
B-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 labels
for tensor-product B-spline surfaces.
1.2 Overview
T-splines and T-NURCCs use knot intervals to convey knot
information. This is reviewed in x2.
T-splines are an enhancement of NURBS surfaces that allow
the presence of T-junction control points. We describe
T-splines by introducing in x3 a less structured form of the
idea, that we call point-based B-splines, or PB-splines. Tsplines
are then discussed in x4, and local refinement is explained
in x5. The application of using T-splines for merging
two or more B-splines into a gap-free model is presented in
x6.
NURCCs are obtained by placing a restriction on the definition
of cubic NURSSes (introduced in [Sederberg et al.
1998]) which gives NURCCs stationary refinement rules.TNURCCs
add to NURCCs the local refinement capability of
T-splines. This is discussed in x7.
While the notion of T-splines extends to any degree, we
restrict our discussion to cubic T-splines. Cubic T-splines
are C2 in the absence of multiple knots.
2 Knot Intervals
A knot interval is a non-negative number assigned to each
edge of a T-spline control grid for the purpose of conveying
knot information. This notion was introduced in [Sederberg
et al. 1998]. In the cubic B-spline curve shown in Figure 4,
P
0
P
1
P
2
P
P 3
4
P
5
d-1=1
d0=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 are
knot intervals. Note how each knot interval is the difference
between two consecutive knots in the knot vector. For a nonperiodic
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 edges
of the control polygon, the knot interval of each edge is the
parameter length of the curve segment to which the edge
maps. Any constant could be added to the knots in a knot
vector without changing the knot intervals for the curve.
Thus, if we are given the knot intervals and we wish to infer
a knot vector, we are free to choose a knot origin.
Edges of T-spline and T-NURCC control grids are likewise
labeled with knot intervals. Since T-NURCC control
meshes are not rectangular grids, knot intervals allow us to
impose local knot coordinate systems on the surface. Figure
5.a shows a regular subgrid of a NURCC control grid.
We can impose a local knot coordinate system on this region,
and therewith determine local polar labels for the control
points, as follows. First, (arbitrarily) assign P00 the
local knot coordinates of (d0; e0). The local knot vectors
for this regular subgrid are then fdg = f0;
i
Xj=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
P
00
P
01
P
02
P
03
P
10
P
11
P
12
P
13
P
20
P
21
P
22
P
23
P
30
P
31
P
32
P
33
a. Bicubic patch
d1 d2
e2
e1
(s-d1,t) P (s,t) (s+d2,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 with
knot intervals.
The polar label for control point Pij ,
with respect to this local knot coordinate system, is thus
and the surface defined by this
regular subgrid is
P(s; t) =Xi Xj
PijN3
i (s)N3
j (t)
where N3
i (s) are the cubic B-spline basis functions over fdg and the N3
j (t) are over feg. The superscript 3 denotes degree,
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 of
control points. Our goal is to generalize B-spline surface to
allow partial rows or columns of control points. We begin by
describing a surface whose control points have no topological
relationship with each other whatsoever. We will refer to this
surface as a PB-spline, because it is point based instead of
grid based. The equation for a PB-spline is
P(s; t) = Pn
i=1 PiBi(s; t)
Pn
i=1 Bi(s; t)
; (s; t) 2 D (1)
where the Pi are control points. The Bi(s; t) are basis functions
given by
Bi(s; t) = N3
i0(s)N3
i0(t) (2)
where N3
i0(s) is the cubic B-spline basis function associated
with the knot vector
si = [si0; si1; si2; si3; si4] (3)
and N3
i0(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, one
must provide a set of control points and a pair of knot vectors
for each control point.
The green box outlines the in
uence domain Di =
(si0; si4) (ti0; ti4) for an individual control point Pi.
Bi(s; t) and its first and second derivatives all vanish at (and
outside of) the green box. It is permissible for in
uence domains
to not be axis-aligned, although our discussion will
assume that they are axis-aligned.
PB-splines satisfy the convex-hull property. Denote
C(s; t) = fPij(s; t) 2 Dig. Then clearly P(s; t) lies in the
convex hull of C(s; t).
D in (1) is the domain over which the entire PB-spline is
defined. The only restrictions on D is thatPn
i=1 Bi(s; t) > 0
for all (s; t) 2 D and D is a single connected component.
This implies that D fD1 [ D2 [ : : : [ Dng, but D does
not need to be rectangular. Due to the convex hull property,
if (s; t) 2 D lies only in one in
uence domain Di, then
P(s; t) = Pi; if (s; t) 2 D lies only in two in
uence domain
Di and Dj , then P(s; t) lies on the line segment connecting
Pi and Pj ., etc. Thus, it is advisable to have each point
in D lie in at least three in
uence domains Di. In general,
there is not an obvious \best" choice for D for a given set
of 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 drawn
the 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 a
possible choice for D is outlined in red. Notice that a PBspline
has no notion of a control mesh; the knot vectors for
each basis function are completely independent of the knot
vectors for any other basis function.
4 T-Splines
A T-spline is a PB-spline for which some order has been imposed
on the control points by means of a control grid called
a T-mesh. A T-mesh serves two purposes. First, it provides
a more friendly user interface than does the completely arbitrary
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) parameter
space. The si denote s coordinates, the ti denote t
coordinates, and the di and ei denote knot intervals, with red
edges containing boundary-condition knot intervals. Thus,
for example, s4 = s3 + d3 and t5 = t4 + e4. Each vertex
has 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
d1
d2 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 allows
T-junctions. The pre-image of each edge in a T-mesh is a
line segment of constant s (which we will call an s-edge) or
of constant t (which we will call a t-edge). A T-junction is
a vertex shared by one s-edge and two t-edges, or by one
t-edge and two s-edges. Each edge in a T-mesh is labeled
with a knot interval, constrained by the following rules:
Rule 1. The sum of knot intervals on opposing edges
of 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 be
connected to a T-junction on an opposing edge of the face
(thereby splitting the face into two faces) without violating
Rule 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 infer
these knot vectors from the T-grid. The knot coordinates
of Pi are (si2; ti2). The knots si3 and si4 are found by considering
a ray in parameter space Then
si3 and si4 are the s coordinates of the first two s-edges intersected
by the ray (not including the initial (si2; ti2)). The
other 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 boundary
control point. In this case, s3;0 and t3;4 do not matter, so
we 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 knot
vectors are determined for each basis function, the T-spline
is defined using the PB-spline equation (1).
The motivation for Rule 2 is illustrated in Figure 9. In
this case, the zero knot interval means that it is legal to have
an edge connecting P with A, and is also legal to have an
edge connecting P and B. However, these two choices will
result in different t knot vectors for P. Rule 2 resolves such
ambiguity.
P
A B
d1 d2
d1 0 d2
d1 0 d2
a.
P
A B
d1 d2
d1 0 d2
d1 0 d2
b.
d1 d2
d1 0 d2
d1 0 d2
P
A B
c.
Figure 9: Possible ambiguity.
Plainly, if the T-mesh is a regular grid, the T-spline reduces
to a tensor product B-spline surface.
5 Control Point Insertion
We now consider the problem of inserting a new control point
into an existing T-mesh. If the sole objective of control
point insertion is to provide additional control, it is possible
to simply add additional control points to a T-mesh, and
leave the Cartesian coordinates of the initial control points
unchanged. Of course, this operation will alter the shape of
the T-spline (at least, that portion of it within the in
uence
of the new control points).
It is usually more desirable to insert control points into
a T-mesh in such a way that the shape of the T-spline is
not changed. We now describe how to add a single control
point in this way. We will refer to this procedure of adding
a single control point into a T-mesh without changing the
shape of the T-spline as local knot insertion.
Consider the example in Figure 10 where control point
P0
3 is inserted on edge P2P4 using the knot intervals shown.
We enforce the following
Rule 3. P0
3 can only be inserted if t1 = t2 = t4 = t5 (see
Figure 10). Recall that ti is the t-knot vector for basis
function Bi. If the control point were being inserted on a
vertical edge, the four neighboring si knot vectors would
need to be equal.
Local knot insertion is accomplished by performing knot
insertion into all of the basis functions whose knot vectors
will be altered by the presence of the new control point. In
Figure 10, the only such basis functions are B1, B2, B4,
and B5 (the basis functions corresponding to control points
P1, 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
P0
1 = P1, P0
5 = P5,
P0
2 =
d4P1 + (d1 + d2 + d3)P2
d1 + d2 + d3 + d4
; (5)
P0
4 =
(d6 + d5 + d4)P4 + d3P5
d3 + d4 + d5 + d6
; and (6)
P0
3 =
(d4 + d5)P2 + (d2 + d3)P4
d2 + d3 + d4 + d5
: (7)
Rule 3 means that it is not always possible to immediately
add a control point to any edge. For example, in Figure 11.a,
Rule 3 does not allow A to be inserted because t2 is different
from t1, t4, and t5. However, if control points are first added
beneath P1, P4, and P5 as shown in Figure 11.b, it then
becomes 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 existing
edge. To insert a control point in the middle of a face, an
edge through that face must first be created.
Local knot insertion is useful for creating features. For
example, darts can be introduced into a T-spline by inserting
a few adjacent rows of control points with zero knot intervals,
as shown in Figure 12. Having two adjacent knot intervals
of value zero introduces a local triple knot, and the surface
becomes locally C0 at that knot. The sharpness of the crease
is 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 functions
Bi(s; t) in equation (1) sum to one for every (s; t) 2 D.
Clearly, a tensor product B-spline surface is a standard Tspline.
Likewise, a standard T-spline that undergoes knot
insertion remains a standard T-spline. Furthermore, a Tspline
formed by merging two B-spline surfaces (as discussed
in x6) is a standard T-spline.
A standard T-spline can be decomposed into polynomial
bi-cubic patches. A non-standard T-spline can also be decomposed
into bi-cubic patches, but they will be rational
patches.
5.2 Extracting Bezier Patches
It is advantageous to represent in Bezier form the patches
that comprise a T-spline, because a tessellation algorithm
such as [Rockwood et al. 1989] can then be applied|with
the minor modification that each T-junction must map to a
triangle vertex in the tessellation to assure that cracks will
not appear in the tessellation.
The domains of the Bezier patches that comprise a
standard T-spline can be determined by extending all Tjunctions
by two bays, as illustrated in Figure 13. The rectangles
in Figure 13.b are Bezier domains. The reason for
this can be understood by considering the knot vectors for
the basis functions of each control point.
a. T-mesh. b. Bezier domains.
Figure 13: Bezier domains in the pre-image of a T-mesh.
Bezier control points can be obtained by performing repeated
local knot insertion. Recall that a B-spline surface
can be expressed in Bezier form using multiple knots, and
that a zero-knot interval implies a double knot. For the
knot interval configuration in Figure 14.b, the 4 4 grid of
control points surrounding F are the Bezier control points
of 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 knot
insertion.
in Figure 14.a can be determined by performing local knot
insertion.
6 Merging B-splines into a T-spline
This section discusses how to merge two B-spline surfaces
with different knot vectors into a single T-spline. Often in
geometric modeling, portions of an object are modeled independently
with different B-spline surfaces that have different
knot vectors, such as the hand in Figure 2. Figure 15 illustrates
the problem: the red and blue control grids are defined
over different knot vectors. Merging them into a single Bspline
requires that they have the same common knot vector,
so knot insertion must first be performed before merging can
proceed. As Figure 15.c illustrates, however, those required
knot insertions can significantly increase the number of rows
of control points. If additional surfaces are subsequently
merged onto these two surfaces, the number of knot lines
can 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 two
NURBS surfaces into a single surface without a proliferation
of control points is to use cubic NURSSes [Sederberg
et al. 1998]. Since cubic NURSSes allow different knot intervals
on opposing edges of a face, two NURBS control grids
can be merged into a single control grid without propagating
knot lines. This approach was studied in [Bakenov 2001].
Figure 16 shows the result of merging two identical B-spline
cylinders with different knot vectors. Unfortunately, any
NURSS representation introduces an unsightly bump at the
junction of the two cylinders. This failed attempt at solving
the merge problem using NURSSes motivated the creation
of 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 2 f??1; 0; 1; 2g), n + 1 columns of control
points on one patch will correspond to n + 1 columns
of control points on the other patch. We consider first the
C0 merge in Figure 17.a. To begin with, each B-spline must
have triple knots (double knot intervals) along the shared
boundary, as shown. For a C0 merge, one column of control
points will be shared after the merge. If the knot intervals
for the two T-splines differ along that common column,
control points must be along the boundary edge so
that the knot intervals agree. In this example, the knot
intervals on the red B-spline are 1; 3; 2; 2 and on the blue
B-spline are 2; 1; 4; 1. After inserting offset control points
on each control grid along the soon-to-be-joined columns as
shown, the common column of control points has knot intervals
1; 1; 1; 1; 2; 1; 1.
Typically in this process, the control points that are to
be merged will have slightly different Cartesian coordinates.
For example, A on the red patch might differ slightly from
A on the blue patch. Simply take the average of those two
positions to determine the position of the merged control
point.
A C2 merge is illustrated in Figure 17.b. The basic idea
is the same as for a C0 merge. The differences are that
four knot intervals a; b; c; d must correspond between the two
surfaces, as shown. Also, three columns of control points
must be merged, as shown. Figure 18 shows the results of a
C0 and a C1 merge. Figure 3 shows an application of this
merge capability in a NURBS model of a human hand. This
is a C0 merge.
1
3
2
2
0 0 0 0
2
1
4
1
1
3
2
2
a b c d a b c d
2
1
4
1
Initial control grids Initial control grids
1
3
2
2
0 0 0 0
2
1
4
1
A A
1
3
2
2
a b c d a b c d
2
1
4
1
B B
Insert control points Insert control points
1
3
2
2
0 0
2
1
4
1
1
1
1
1
2
1
1
1
3
2
2
a b c d
2
1
4
1
Merge as T-spline Merge as T-spline
a. 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 [Sederberg
et al. 1998] that we call NURCCs (Non-Uniform Rational
Catmull-Clark Surfaces). T-NURCCs are NURCCs with Tjunctions
in their control grids, in the spirit of T-splines.
Both NURCCs and NURSSes are generalizations of tensor
product non-uniform B-spline surfaces: if there are no extraordinary
points, if all faces are four-sided, and if the knot
intervals on opposing edges of each face are equal, NURCCs
and cubic NURSSes both degenerate to non-uniform
B-spline surfaces. NURCCs and NURSSes are also generalizations
of Catmull-Clark surfaces: if all knot intervals are
equal, NURCCs and cubic NURSSes both degenerates to a
Catmull-Clark surface.
NURCCs are identical to cubic NURSSes, with one difference:
NURCCs enforce the constraint that opposing edges
of each four-sided face have the same knot interval while
NURSSes have no such restriction. It is for that reason that
NURSSes have non-stationary subdivision rules and NURCCs
have stationary refinement rules. It is also for that reason
that NURCCs are capable of local refinement, whereas
NURSSes are not.
The refinement rules for NURCCs are thus identical to the
refinement rules for NURSSes if we require opposing edges
of each four-sided face to have the same knot interval. Those
refinement rules are discussed in [Sederberg et al. 1998].
We now discuss how T-junctions can be used to perform
local refinement in the neighborhood of an extraordinary
point. To simplify our discussion, we first require that all
extraordinary points are separated by at least four faces,
and that all faces are four-sided. These requirements can be
met by performing a few global refinement steps, if needed.
Thereafter, all refinement can be performed locally. For example,
any suitably large regular subgrid of a NURCC control
grid can undergo local knot insertion, as discussed in x5.
Also, refinement near an extraordinary point can be confined
to the neighborhood of the extraordinary point.
To explain how to do this, we first devise a way to perform
local knot insertion in the neighborhood of a single (valencefour)
vertex in a T-spline. Referring to Figure 19, we begin
e2
e3
(1-r)e2
re2
re3
(1-r)e3
1
2
3 4
Figure 19: Local refinement about a valence-four control
point.
with the black control grid. Then, it is legal using the procedure
in x5 to insert all of the red control points in row 1,
followed by row 2, followed by column 3, followed by column
4. Then the green control points can legally be inserted in
like order, then the blue control points, etc. What is produced
is a local refinement in the immediate neighborhood
of one black control point. Note that this refinement scheme
can split faces at any ratio . For a valence-4 point, changing
does not change the limit surface since we are merely doing
B-spline knot insertion, but when we adapt this scheme
to extraordinary points, will serve as a shape parameter.
Figure 21 shows the effects of changing .
We now present the local refinement rules for T-NURCCs
at 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 the
extraordinary point. If = 1
2 and if all the initial knot
intervals are equal, the limit surface obtained using this local
refinement is equivalent to a Catmull-Clark surface.
Lower-case letters refer to knot intervals and upper-case
letters to points. Vertices A, B, C, D, Q, R, S, T are the
initial control points, prior to refinement. After refinement,
these vertex points are replaced by new vertex points denoted
with primes: A0, B0, C0, D0, Q0, R0. The following
equations for A0, E1, and F1 are obtained from [Sederberg
et al. 1998]. All other equations are obtained by repeated
application of (5){(7).
B A
D
C
T
R
Q
S
d
0
d
1
d
2
h
i-2
hi+2
G2
H2
E2
h
i-1
Fi+1
h
i+1
Fi
G1
d
1 r
e
r 1
e
r 2
F2
Q'
D'
B' A'
e-1
d-1
F1
H1
R'
e2
e1
e0
h
i
h
4
Mi+1
Mi
M2
Local refinement at an extraordinary point is illustrated
in Figure 1, which shows a T-NURCC that has undergone
four steps of local refinement. The yellow dots highlight four
T-junctions. Note that this locally-refined mesh has two
orders of magnitude fewer faces than it would have using
global Catmull-Clark refinement.
Figure 21: A T-NURCC showing the in
uence of the parameter
. The initial control grid is on the top left, the limit
surface with = 0:1 is on the top right, = 0:5 is on the
bottom left, and = 0:9 is on the bottom right.
This discussion has assumed that extraordinary vertices
are separated by at least four faces; this can always be accomplished
by performing a few preliminary global refinement
steps. It is possible to derive local refinement rules
that would not require such initial global refinement steps,
but there are additional special cases to consider.
Away from extraordinary points, NURCCs are C2, except
that zero knot intervals will lower the continuity. At
extraordinary points where all edges have the same knot interval
value, an eigenanalysis for the valence 3 case shows
This gives analytic proof that for the valence three case, the
surface is G1 for any legal value of ( 0 < < 1). A similar
result can be obtained for valence five. For higher valence,
the symbolic algebra expressions get unwieldy, but a sampling
of specific values of has not revealed any case where
the G1 condition is not satisfied. If the knot intervals for
edges neighboring on extraordinary point are not equal, the
situation is related to that analyzed and discussed in [Sederberg
et al. 1998], which observes that empirical evidence
suggests G1.
8 Conclusion
This paper presents the theoretical foundation for T-splines
and T-NURCCs. The formulation is simple and straightforward
to implement. T-splines and T-NURCCs permit true
local refinement: control points can be added without altering
the shape of the surface, and (unless there are knot
intervals with a value of zero) the new control points can be
moved and the surface will remain C2.
Since T-NURCCs generalize NURBS and Catmull-Clark
surfaces, a modeling program based on T-NURCCs can handle
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 be
standard. What are the necessary conditions? Also, a local
knot insertion sometimes requires that other local knot
insertions must first be performed. Those local knot insertions
might require others to be performed before they can
be, etc. Are there cases in which these prerequisites cannot
all 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-spline
refinement. Computer Graphics 22, 4(August 1988), 205{212.
Grinspun, E., Krysl, P., and Schr oder, P. 2002. Charms: A
simple framework for adaptive simulation. ACM Transactions
on Graphics 21, 3 (July), 281{290.
Kobbelt, L. 2000. p3-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-time
rendering 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 spaces
with 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 modeling
and animation, SIGGRAPH'00 course notes.