NURBS with Extraordinary Points:
High-degree, Non-uniform, Rational Subdivision Schemes
Thomas J. Cashman
University of Cambridge
(a) Control mesh
Ursula H. Augsdörfer
University of Cambridge
Neil A. Dodgson
University of Cambridge
(b) Degree 3
(c) Degree 7
Malcolm A. Sabin
Numerical Geometry Ltd
(d) Degree 7, non-uniform knots.
Figure 1: The same control mesh subdivided in three different configurations. In regular regions, the degree 3 surface (b) is C2, and the degree
7 surfaces (c) and (d) are C6. No previous subdivision scheme can generate the surface (d). The knot intervals modified to give (d) are shown
in (a); the red interval is ten times greater than the unmarked intervals, and the green interval is four times greater. Comparing (d) with (c),
note that in this case the non-uniform intervals change the whole surface, because the influence of a knot interval grows with degree.
We present a subdivision framework that adds extraordinary vertices
to NURBS of arbitrarily high degree. The surfaces can represent any
odd degree NURBS patch exactly. Our rules handle non-uniform
knot vectors, and are not restricted to midpoint knot insertion. In the
absence of multiple knots at extraordinary points, the limit surfaces
have bounded curvature.
CR Categories: I.3.5 [Computer Graphics]: Comp. Geom. and
Object Modeling—Curve, surface, solid, and object representations
Designers of freeform surfaces used to have to operate within the
constraints imposed by NURBS [Farin 2001]. NURBS have a rigid
rectangular control grid, so surfaces usually had to be represented
as a collection of trimmed patches and continuity across the patch
seams had to be manually enforced.
Subdivision surfaces removed these constraints by allowing designers to introduce extraordinary points into an otherwise regular
control mesh. The resulting flexibility led to widespread adoption
for applications such as character animation [DeRose et al. 1998],
but NURBS are still an important industry standard in fields like
c ACM, 2009. This is the author’s version of the work. It is posted
here by permission of ACM for your personal use. Not for redistribution.
The definitive version was published in ACM Transactions on Graphics,
{28, 3, (August 2009)}
Computer-Aided Design. In addition to bicubic patches, CAD models sometimes use the additional continuity available from biquintic,
occasionally biseptic, and very rarely higher degree B-splines. Highclass surfaces also use non-uniform parametrizations for handling
boundaries, selectively reducing continuity, and integrating surface
features at varying scales. No subdivision scheme, however, has
been able to provide the full complement of NURBS features alongside the flexibility of extraordinary points.
We present a new subdivision framework that is a true superset of
NURBS at odd degrees. We provide rules that give a continuous
tangent plane and bounded curvature at the extraordinary points.
Any existing NURBS patch can be represented exactly, and the
regular regions of the resulting surfaces are also exact NURBS, so
surfaces can be exported as a collection of NURBS to within any
given deviation tolerance.
Related work
NURBS can be non-uniform and are well defined for arbitrarily high
degree. Our subdivision scheme, as a superset of NURBS, must
also hold these two properties (see Figure 1). Our method builds on
previous schemes that address these challenges separately.
Interest in high-degree subdivision schemes initially centered around
the search for surfaces with continuous non-zero curvature at extraordinary points. Reif [1996] showed that a stationary C2 scheme
would have to use at least bisextic patches, and both Prautzsch [1997]
and Reif [1998] presented constructions which achieve this lower
bound. The resulting surfaces are Ck at extraordinary points, for
arbitrary k, and use B-spline patches with degree which increases
rapidly with k.
Instead of specifying a continuity class (and letting degree adapt as
necessary), Prautzsch [1998] also described a ‘midpoint’ scheme
which can generate B-spline patches of a specified degree. The
rules for this scheme generalize the averaging algorithm described
by Lane and Riesenfeld [1980] for uniform B-spline subdivision.
By using a sequence of smoothing stages, the scheme avoids the
problems arising from the widening influence of a point as degree
increases. Warren and Weimer [2001] developed these ideas along
with several other researchers; Zorin and Schröder [2001] showed
that the resulting surfaces are C1 at extraordinary points (although
the curvature diverges), and Stam [2001] described a variant where
the topology of the mesh is invariant under smoothing.
Around the same time, subdivision surfaces were developed which
generalize non-uniform (but fixed degree) B-spline surfaces. The
tensor product construction for NURBS means that the same knot
spacing must be shared by an entire “row” or “column” of edges, but
Sederberg et al. [1998] presented surfaces which relax this property.
Their scheme allows a separate knot spacing to be attached to every
edge in a control mesh. Müller et al. [2006] developed a scheme
which could additionally provide the position of a given point on
the limit surface. These surfaces were also combined with T-splines
[Sederberg et al. 2003], although with the restriction that opposite
edges of a quadrilateral face must share the same knot spacing. This
brought the surfaces into equivalence with bicubic NURBS, in the
absence of extraordinary points and “T-junctions”.
There are therefore previous schemes that are true supersets of
bicubic NURBS, and previous schemes of arbitrary degree, but
no previous scheme that combines these – a superset of NURBS at
arbitrary degree.
Like Prautzsch’s midpoint scheme, our method handles high degrees
by breaking each subdivision step into one “refine” and several
“smoothing” stages. We need to handle non-uniform knot vectors,
however, and are therefore unable to use the Lane and Riesenfeld
[1980] algorithm. Instead, we generalize a non-uniform analogue,
which we review in Section 4.
We make the same restriction as Sederberg et al. [2003]: that each
quadrilateral face must have equal knot spacing on opposite edges
(as is the case with NURBS). We also restrict the control mesh to
contain only quadrilateral faces (again, as with NURBS), but our
rules must still allow for extraordinary vertices. We discuss the
generalization that makes this possible in Section 5.
The resulting subdivision framework achieves our objective of
adding extraordinary points to NURBS of arbitrary odd degree. Our
method allows each knot interval to be subdivided at any position or
not at all. In extraordinary regions, changing the sequence of knot
insertions can change the limit surface, so it is important to resolve
which knots we should insert, and where. We address this in Section
6, with an algorithm that first subdivides only large knot intervals
until all the intervals are approximately the same size. This avoids
problems which occur around extraordinary points if there is a large
disparity between neighboring knot intervals. We use further subdivision steps to create a region of uniformity around extraordinary
points, so that continuity and curvature variation in these regions is
determined by uniform, rather than non-uniform, rules.
In Section 7, we use eigenanalysis to tune the uniform rules so that
curvature is stable under the subdivision process, instead of increasing to infinity or collapsing to zero. The same bounded curvature
conditions mean that extraordinary regions can hold both elliptic and
hyperbolic shapes in the limit surface, as neither shape dominates
the other. It proves more difficult to satisfy the bounded curvature
conditions around vertices of valency 3; we found it necessary to introduce an additional smoothing stage to handle this case. With this
modification, our method has bounded curvature for all valencies at
arbitrarily high degrees, and maintains the convex hull property (by
taking only convex combinations) up to degree 13.
σ =i+1
Figure 2: A smoothing stage on a single control point in the univariate knot insertion algorithm, where a + b + c = 1. Contributions
come only from the point and its two immediate neighbors.
b b
2 2
σ =i+1
Figure 3: We can consider the contributions from each side of a
point separately, by using only half weights for each of the contributions from the predecessor point.
Non-uniform, high-degree curves
As our method is built on NURBS, the subdivision rules for regular regions, whatever the degree, are derived from B-spline knot
insertion. We can find these rules using a number of different approaches: two examples are the method presented by Boehm [1980]
and the Oslo algorithm [Cohen et al. 1980]. All knot insertion algorithms give the same result but as degree increases, each point has
a widening influence on points in the subdivided control polygon.
For a generalization to surfaces containing extraordinary points, this
causes problems at high degrees: both because of a drop in efficiency,
and because a subdivision step must account for any possible configuration of extraordinary points in the control mesh. The number of
cases to consider grows exponentially with the influence of a point,
which grows quadratically with degree. Therefore using existing
knot insertion rules directly is not a feasible option for high degrees.
Instead we need a knot insertion algorithm that uses a series of
local computations which overlap, in the same way as the Lane and
Riesenfeld [1980] algorithm. No matter how high the degree, the
number of cases to consider is then constant. Schaefer and Goldman
[2009] describe a univariate non-uniform algorithm which works
in this way, but it is difficult to generalize to surfaces because of
asymmetry. We developed a symmetric approach [Cashman et al.
2009], which we use here.
This univariate algorithm breaks a subdivision step into a refine stage
followed by bd/2c smoothing stages, where d, which is odd, is the
degree. We use σ to denote the current stage. At each smoothing
stage we consider each point in turn, with the two knots which are
a distance σ away in the subdivided knot vector on either side. If
these knots need to be inserted, then the algorithm uses stage σ to
introduce them into the polar form (blossom) [Ramshaw 1989] of
the relevant point.
This process inserts 0, 1, or 2 knots into the polar form of each
point at each stage. Cashman et al. [2009] give the required affine
combinations and implementation details for the curve case. The
important observation is that each affine combination uses only direct
neighbors; we can therefore visualize the effect of a smoothing stage
on a single point as shown in Figure 2, although either (or both) of
the weights a and c may be 0. Figure 3 shows that we can consider
the same smoothing operation one edge at a time, which forms the
foundation of our method for the surface case.
Non-uniform, high-degree surfaces
To generalize the curve case to surfaces with extraordinary points,
we calculate the affine combinations of refine and smooth stages
one face at a time. The weights used in the affine combinations are
defined using the tensor product of univariate knot insertion when
considered one edge at a time (as shown in Figure 3). For a NURBS
control mesh, each smoothing stage calculates weights in the four
faces surrounding a vertex (Figure 4). These weights combine to
give the tensor product of a smoothing stage in the form shown in
Figure 2, as required for NURBS knot insertion.
Introducing extraordinary points
Like Sederberg et al. [1998], we associate a knot spacing with each
edge of a control mesh. However, we require:
• that all faces are quadrilateral, and
• that knot spacings on opposite edges of a face are equal.
The latter is the same restriction that Sederberg et al. [2003] imposed
on NURSS in order to incorporate T-junctions. The result is that knot
spacings are defined for a whole strip of quadrilateral faces rather
than for a single edge. Both conditions, of course, are properties
of NURBS control meshes. In a mesh where these conditions hold,
each face has two associated strips of quadrilateral faces, one in
each of the two directions (Figure 5). We use these strips to build
local knot vectors for each face. In a mesh containing extraordinary
points, a smoothing stage may use different knot vectors for each
face surrounding a vertex.
Figure 4: In regular regions, a smoothing stage computes contributions to a point from each of the surrounding four faces. The
weights in each face are taken from the tensor product of Figure 3;
the pairs of contributions shown in red define the influence of edgeconnected vertices and the four contributions shown in blue combine
to give the influence of a point on its successor. In a NURBS mesh,
these 16 weights sum to 1, and compute the same affine combination
as the tensor product of Figure 2.
To maintain affine invariance, the weights in every affine combination must sum to 1. We therefore normalize each affine combination
by dividing by the sum of contributing weights. This is necessary
at extraordinary points, since a vertex of valency n receives 4n
contributions instead of 16. The multipliers we use for bounded
curvature make it necessary to normalize every affine combination
that has a contribution from an extraordinary point. Normalization
is sometimes necessary along the rays which emanate from extraordinary points, because the two sides of the ray can use different knot
vectors. It is therefore easiest to normalize every affine combination,
regardless of position in the mesh. This also handles faces with more
than one extraordinary corner, without special cases.
This strategy allows us to create non-uniform subdivision surfaces at
arbitrarily high degrees. To create a true superset of NURBS, all that
remains is to make the surfaces rational, which is straightforward
[Sederberg et al. 1998]: rational control points are projected into R4 ,
subdivided, and then projected back into R3 .
The refine stage is also computed one face at a time. Here we
introduce vertices on existing edges and within existing faces. In the
face case, the new vertex position is given by the tensor product of
univariate refinement in the two directions. In the edge case, the two
univariate contributions are split into four: two on each side of the
edge. Cashman et al. [2009] give the univariate rules and Figure 6
shows an example of how these are applied to a bivariate case.
Section 7 describes our modifications for bounded curvature, which
multiply the weight of each contribution from an extraordinary vertex
by an additional value. There is a separate multiplier for contribud
, to adjacent
tions from an extraordinary vertex to its successor, αn
vertices, βn , and to vertices across a diagonal, γn . The same value
is used in every refine and smoothing stage, and is determined by
the valency of the extraordinary point and the degree of the surface.
Valency 3 is difficult (see Section 7.2) and requires an extra smoothing step to achieve bounded curvature while maintaining the convex
hull property.
Figure 5: Every face has a local knot vector in two directions, which we can construct by following a strip of quadrilateral faces. For the shaded face, knot spacings in the blue
direction are {k1 , k2 , k3 , k4 , k5 } and in the red direction are
{k6 , k7 , k8 , k9 , k10 }. This example collects knot vectors at the
length required for subdivision at degree 5.
k3 /2+k4
2 k1 +k3 +k4
1 k1 +k3 /2
2 k1 +k3 +k4
k3 /2+k4
2 k2 +k3 +k4
1 k2 +k3 /2
2 k2 +k3 +k4
Figure 6: An example refine stage for degree 3, where the interval k3
has a knot inserted at its midpoint. Other intervals are unmodified.
The knot insertion algorithm therefore introduces points , along
the subdivided interval, and we show the unnormalized weights used
to form the central point . The fractions that involve ki are from
the curve case, the factors of one half are because we treat each side
of each edge separately, and the multiplier, β53 , is required to get
bounded curvature in the bivariate case, as explained in Section 7.
Knot insertion strategy
We have now achieved our objective: NURBS of odd degree with
extraordinary points. However, extraordinary points make it possible
for a large knot interval, adjacent to a high-valency point, to be
invisible to faces “hidden behind” the point. We find that this can
cause folds in the limit surface if knots are inserted naı̈vely. Of
course, in regular regions, as with NURBS, the sequence of knot
insertions does not alter the limit surface. The same property does
not apply around extraordinary points, so the sequence in which
knots are inserted is important. In this section we describe our
method for choosing which knots to insert, and where to insert them.
Our univariate algorithm [Cashman et al. 2009] is not constrained
to subdivide every interval, so we can regularize knot spacings by
subdividing large intervals first. Our regularization condition is that
no knot interval is twice (or more) as large as any other. Given the
complete set of knot intervals k = {ki }, we establish the minimum
non-zero interval κ = min({ki : ki > 0}). If max(k) ≥ 2κ, we
use a limited subdivision step that inserts knots only into intervals
which are 2κ or greater. We subdivide each interval at its midpoint,
so a total of blog2 (max(k)/κ)c such steps is required to achieve
our regularization condition.
This strategy avoids undesirable folds in the surface at the scale
of the first subdivision step. Once max(k) < 2κ, we address the
behavior of the extraordinary points at smaller scales. To make guarantees on the behavior of these extraordinary regions, we use further
subdivision steps to insert knots uniformly around extraordinary
points, while subdividing other intervals at their midpoint. Doing so
creates a uniform region with a stationary subdivision matrix. We
are therefore able to apply eigenanalysis to guarantee C1 continuity
(see the Appendix).
We need at most two steps before every extraordinary point is surrounded by one layer of evenly spaced knots. Consider the simplest
case: a single extraordinary point of valency n surrounded by regular
mesh. Let the knot intervals surrounding this point be k1 to kn . We
insert a knot into each interval ki , creating uniform spacing at a
distance min({k1 , . . . , kn })/2 away from the extraordinary point.
In the general case, we have multiple extraordinary points in an
arbitrary configuration. Figure 7 shows that the uniform knot insertion for one extraordinary point may impact on another. In fact,
extraordinary points with emanating rays which are shared over any
number of regular points must insert knots at the same distance away,
in order to achieve uniform knot spacing (Figure 8). We can define
a set of equivalence classes for extraordinary points connected in
this way, and calculate the membership of the classes in a single
pass through points in the mesh. To achieve this, our implementation uses knot interval objects that hold a reference to an adjacent
extraordinary point, if there is one, on either side. A disjoint set
data structure [Galil and Italiano 1991], with associated “find” and
“union” operations, is then used to join any classes which appear
on the same side of a knot interval. The equivalence classes are
unaffected by subdivision, so they need only be calculated once, and
this can be at the coarsest level.
Once calculated, the equivalence classes can be used to insert knots
at a distance which achieves uniform spacing for all members of the
class. However, Figure 7 also shows that two or more extraordinary
points, on either side of a knot interval, might make conflicting
requests for where a knot should be inserted. In this case, we use the
first subdivision step to insert a knot between the two positions. As
the knot interval is then split, there can be no conflict in the second
subdivision step.
Uniform knot spacing around extraordinary points is thus guaranteed
in at most two steps. In summary, our algorithm for establishing
uniform spacing is:
• for each equivalence class, establish the minimum from the
knot intervals that surround extraordinary points within it
• for each extraordinary point, request to insert knots into surrounding intervals at half of the minimum interval for the class
• for each knot interval, subdivide at the midpoint, or at the mean
of the requested positions, if there are insertion requests.
Figure 7: Two subdivision steps may be required to insert uniform
knots around extraordinary points. In this figure, knot interval size is
symbolized geometrically; black edges indicate original knots, and
we insert the red knots in the next subdivision step. Note that the
uniform spacing for the extraordinary point on the right is influenced
by the intervals surrounding the point on the left. There is also a
conflict in the central knot interval, as the knots shown using dashed
green lines cannot both be inserted in the first subdivision step.
Note that the method described here cannot apply if there is a multiple knot (i.e. a zero knot interval) adjacent to an extraordinary point.
In this case, we can still proceed with subdivision but we are unable
to create uniform knot spacing, which means that we cannot prove
C1 continuity in the presence of zero knot intervals.
Where uniform spacing is achievable, additional subdivision steps
insert knots into the centers of the surrounding intervals. This creates
a growing region of uniformity around each extraordinary point, so
the behavior of the limit surface at these points is determined by
uniform rules. Therefore Section 7 (which modifies the uniform
case for bounded curvature) and the Appendix (which discusses our
proof that the uniform rules create C1 surfaces) will apply to any
non-uniform configuration with non-zero knot intervals adjacent to
extraordinary points.
Figure 8: Our knot insertion strategy groups extraordinary points
into equivalence classes based on whether they share an emanating
ray. For this example, the two extraordinary points marked (with
emanating rays drawn in red) are in the same equivalence class, as
are the two points marked (with emanating rays drawn in green).
Bounded curvature
Without multiple knots, degree d B-splines (including the regular
regions of our scheme) have d − 1 continuous derivatives. At extraordinary points, however, it has proved difficult for stationary
subdivision to provide anything more than continuity of the first
derivative. There are a range of possible behaviors for the second
valency (n)
valency (n)
valency (n)
Figure 9: Bounded curvature solutions for αn
, βnd and γnd . Valency ranges from 3 to 20. The multipliers are plotted for degree, d, equal to 3
and 9
. Note that α4 = β4d = γ4d = 1 by definition, as the regular case is curvature continuous and hence already
satisfies the bounded curvature equations λ2 = µ0 = µ2 .
Table 1: αn
, βnd and γnd at a selection of valencies and with d ranging from 3 to 9. See auxiliary material for a full table.
derivative [Sabin et al. 2003], which we can analyze using an eigendecomposition of the subdivision matrix [Peters and Reif 2008]. We
aim for bounded curvature, which we believe gives the best behavior
of the limit surface. We use λ to denote the subdominant eigenvalue,
and write µ0 and µ2 for the eigenvalues of the components which
generalize an elliptic and a hyperbolic paraboloid, respectively. As
the subdivision rules we consider are rotationally symmetric, the
eigenvalues λ and µ2 are always double.
Reif [1996] shows that no stationary subdivision scheme based on
bicubic pieces can have non-zero curvature continuity at extraordinary points. It is possible, however, to satisfy bounded curvature,
where λ2 = µ0 = µ2 . This is a necessary, but not sufficient,
condition for C2 continuity, and preserves curvatures in both of
the quadratic eigencomponents through subdivision. Therefore the
extraordinary region is not dominated by either the elliptic or hyperbolic component, and curvature at the extraordinary point is bounded
by the curvatures appearing in the spline rings of those components
[Peters and Reif 2008]. In contrast, the Catmull-Clark scheme [Catmull and Clark 1978] has λ2 < µ0 < µ2 at valencies greater than
four, leading to a surface which is always hyperbolic, irrespective of
the control mesh shape [Karciauskas et al. 2004].
non-stationary rules that result in a local blend between the limit
surface and a C2 polynomial. It would be possible to apply the same
principle to our scheme, once uniform knot spacing has been created
around extraordinary points. However we have chosen to maintain
the simplicity of stationary rules for uniform configurations. We
now show how to modify our rules to give bounded curvature at
arbitrarily high degree.
Valency greater than regular
For uniform knot vectors at each degree and valency, we compute
the Discrete Fourier Transform (DFT) of the subdivision matrix for
the rules described in Section 5. We want to modify the rules for
bounded curvature, but the size of the subdivision matrix increases
with degree. It therefore becomes impractical to find an exact solution in symbolic form, even using the DFT and considering each
block separately. Instead we use a nonlinear solver on floating point
values. We ensure that λ2 differs from µ0 and µ2 by no more than
10−12 (with subdivision matrices calculated to double precision, and
with floating-point eigenvalue routines). Note that this process is
offline, and has no impact on the speed of an implementation.
Several authors have modified stationary subdivision schemes to
improve curvature in extraordinary regions. Sabin [1991] presents
a variant of Catmull-Clark with bounded curvature. Barthe and
Kobbelt [2004] tune extraordinary point rules for a number of desirable properties, including bounded curvature, and both Holt [1996]
and Loop [2002] present bounded curvature schemes for triangle
meshes. Augsdörfer et al. [2006] tune schemes for bounded curvature while seeking to minimize the range of the bounds, and Ginkel
and Umlauf [2006] try to eliminate cases where the bounded range
includes both positive and negative curvatures.
We modify our rules using mask tuning [Augsdörfer et al. 2006],
adapted for the setting where a subdivision step is factorized into separate stages. The idea is to multiply the weight of any contribution
from an extraordinary point by an additional value. We use the same
multipliers for the refine and smoothing stages. An extraordinary
vertex can make contributions to vertices in three different positions,
each of which uses a separate multiplier:
If the subdivision matrix is not required to be stationary, then curvature continuity is easier to achieve. Levin [2006], for example, uses
• γnd , for vertices diagonally opposite the extraordinary vertex in
adjacent faces.
• αn
, for the new extraordinary vertex,
• βnd , for edge-connected vertices,
We find bounded curvature solutions for each d, the degree (which
is always odd), and each n, the valency. In an implementation, these
values are stored in a lookup table.
The multiplier α affects only the zero frequency Fourier block, so we
can first solve λ2 = µ2 using just β and γ. We use the second degree
of freedom in this optimization to make the shape of the subdominant
eigenvector as stable as possible. Taking these solutions into the
zero frequency block, we are then able to use α to solve λ2 = µ0 .
Figure 9 and Table 1 show the resulting solutions for degrees 3 to 9
and valencies up to 20. A full table is included as auxiliary material.
Figure 10: Final affine combination used to position 3-valent vertices for bounded curvature. Red lines indicate knots which have
been inserted in this subdivision step (as an illustration, we show
a case where no knot has been inserted into the interval on the
right). The extraordinary point, in the center, takes a new position
calculated from the existing position v ( ), the points ei ( ) which
are edge-connected at the end of the subdivision step, and the points
fi ( ) which are in the positions which were face-connected at the
start of the subdivision step.
Table 2: Values for δd to achieve bounded curvature for valency 3.
// Initialization
foreach extraordinary point p do
assign p to an equivalence class
foreach subdivision step do
// Knot insertion strategy
if max(k) ≥ 2κ then
foreach knot interval k where k ≥ 2κ do
subdivide k at its midpoint
foreach equivalence class ei do
κi ← min(knot intervals surrounding points in ei )
foreach extraordinary point p in equivalence class ei do
foreach knot interval surrounding p do
make insertion request at a distance 12 κi from p
foreach knot interval k do
if k has insertion requests then
subdivide k at mean of requested positions
subdivide k at its midpoint
// Subdivide mesh based on inserted knots
foreach quadrilateral face f with knot intervals ki and kj do
if ki and kj both subdivided then
compute refine stage for new point within f
if ki or kj is subdivided then
make contributions for new points on edge of f
for σ ← 1 to bdegree/2c do
foreach quadrilateral face f do
make contributions for smoothing stage σ within f
foreach 3-valent point p do
compute final position of p
Figure 11: Pseudocode for our subdivision algorithm
Valency 3
At valency 3, we can use the method described above to solve λ2 =
µ2 in exactly the same way. If we try to satisfy λ2 = µ0 , however,
we find that the solutions for α3d are negative. The resulting surfaces
could therefore lie outside the convex hull of the control points. Even
worse, there are some degrees with no bounded curvature solution
at all. We therefore need to treat the valency 3 case separately.
Instead of using a negative weight for the contribution from an
extraordinary vertex to its successor, we can instead shrink µ0 by
increasing the number of points which influence the extraordinary
vertex over the course of a subdivision step. This increase in support
may be considered undesirable, but we consider convex combinations more important than a small increase in support.
Our modification introduces an additional, final smoothing stage,
affecting only 3-valent vertices (Figure 10). We need to take a
contribution from vertices that are sufficiently far away from the
extraordinary point to shrink µ0 at a rate of λ2 . We also want to
avoid complications arising from arbitrary connectivity. Our solution
is therefore to take fi , the vertices in the positions which were faceconnected to the extraordinary point at the start of the subdivision
step. In the uniform case, the fi therefore lie at the corners of the
two rings surrounding an extraordinary point. If a face has not been
subdivided in one direction or both, however, they will be more
closely connected. In Figure 10, for example, f1 and f3 are only a
knight’s move away from the extraordinary point. We also use ei ,
the vertices connected to the extraordinary point by edges, and the
position of the 3-valent extraordinary point, v. The position of the
new point, v̂, is given by
v̂ = ρv +
(1 − ρ)(1 − δd )ei +
(1 − ρ)δd fi
This final smoothing stage allows us to solve λ2 = µ0 using the
same numerical solver, but varying δd instead of α3d (see Table 2).
Here ρ is the product, over every stage, of the normalized weight in
the contribution from the extraordinary point to its successor. We
use ρ to retain the property that a point is only modified if knots
are inserted nearby. If no knots are inserted into the domain of the
extraordinary point’s basis function, then ρ = 1 gives v̂ = v as
Every affine combination in our univariate knot insertion algorithm
uses non-negative weights. The same is therefore true of the tensor
product, and of the modifications for bounded curvature, as the
multipliers α, β and γ are also non-negative. Therefore 0 ≤ ρ ≤ 1,
as ρ is the product of non-negative weights, and if 0 ≤ δd ≤ 1, then
our scheme holds the convex hull property.
In solving λ2 = µ0 , we find 0 ≤ δd ≤ 1 for the six degrees where
d ranges from 3 to 13. The resulting values are given in Table
2. With the inclusion of an additional smoothing stage, α3d has
relatively little effect, as the position of the extraordinary point is
largely determined by the value of δd . However, we do want to make
Control mesh
Degree 3
Degree 5
Degree 7
Degree 9
Table 3: Surfaces with three different knot configurations (top to bottom) at degrees 3, 5, 7 and 9 (left to right). Each surface is drawn with
reflection lines and is defined by the control mesh shown on the left. In each row, the knot intervals shown in red are five times larger than the
others; the first row shows the uniform case. Note the widening influence of a knot interval as degree increases. The six surfaces which are
both high-degree and non-uniform (bottom-right) cannot be generated by any previous subdivision scheme.
sure that δ3 ≥ 0, and therefore we set α3d = 43 for all d as a useful
simplification that achieves this. Given uniform knot spacing, this
value scales contributions from 3-valent points to their successors
so that the total unnormalized weight is the same as in the regular,
4-valent case.
In summary, we have now modified general degree, non-uniform
subdivision schemes to have bounded curvature at all degrees and
valencies. The schemes hold the convex hull property for a useful
range of degrees from 3 to 13, which, at valency 3, requires a small
increase in the support of surrounding basis functions. The complete
algorithm is summarized as pseudocode in Figure 11.
This work follows calls from the CAD industry for subdivision
surfaces that do not enforce a uniform parametrization [Gonsor and
Neamtu 2001]. Ma [2005] also suggests, as a research area that
would allow subdivision to gain greater acceptance in CAD, “a
further unified generalization ... [which] should cover all [that] we
can do with NURBS.” We have achieved this for odd degree.
Figure 1 and Table 3 show examples at a range of degrees and
different knot intervals. Karciauskas et al. [2004] note that bounded
curvature schemes can suffer from a lack of fairness. This effect
seems to be visible in the degree 3 surfaces of Table 3, since the
reflection lines are not as smooth as a Catmull-Clark surface on
the same data. However, we have recourse to higher degrees for
providing additional smoothness, and the surfaces at degree 5 and
higher seem fairer. In fact, we believe that even in the completely
uniform case, the degree 5 surfaces are an interesting alternative
to Catmull-Clark. The computational cost is only slightly higher
(being degree 5 rather than degree 3), and yet the resulting surfaces
have bounded curvature without compromising global shape.
Around points with high valency, subdivision surfaces typically
suffer from poor shape (Figure 12). Our method produces a much
smoother shape, even at low degree, compared with schemes that
have divergent curvature. There is also a noticeable improvement
in visual smoothness by using a higher degree, although the surface
remains formally only C1 at the extraordinary point.
Zorin and Schröder [2001] found that general degree surfaces which
are generated by centroid averaging have curvatures which diverge
faster, at extraordinary points, as degree increases. Our modifications for bounded curvature avoid this outcome, so there are fewer
disadvantages to using higher degrees to obtain greater smoothness.
The remaining disadvantages apply to B-splines in general: higher
computational cost, increased shrinkage when comparing the limit
surface to the control mesh, and control points which have a less
local influence over the surface.
Our modifications for bounded curvature require λ to be less than
for valency 3, and greater than 21 for valency greater than 4 (see
Figure 14). Barthe and Kobbelt [2004] explicitly try to avoid this
outcome, because of the “polar artifact” which then appears when a
subdivision surface is rendered using its control polygon after just a
few subdivision steps. However, we are primarily interested in the
behavior of the limit surface (made up of B-spline patches) rather
than the control mesh, as it is the limit surface that is important for
CAD applications.
Non-uniform parametrizations might be useful where subdivision
surfaces are textured (for example, procedurally) using the piecewise
(a) Control Mesh
(b) Catmull-Clark [1978]
(c) Our method at degree 3
(d) Our method at degree 9
Figure 12: Reflection lines on surfaces defined by a control mesh with a 12-valent extraordinary point. Each surface is rendered with vertices
projected to the limit surface; (c) and (d) use exact evaluation [Stam 1998] to sample the limit surface in the region of the 12-valent point.
gradually across a surface, without compromising continuity around
extraordinary points.
(a) Uniform parametrization
(b) Chordal parametrization
Figure 13: A cuboid subdivided at degree 3. The subdivision surfaces are shown with isoparameter lines. Setting knot intervals to
chord length increases the regularity of the parametrization.
parametrization associated with the control mesh. Like NURBS, our
scheme allows each face to be parametrized by a rectangle, rather
than the unit square. Figure 13 shows that a chordal parametrization
can help reduce texture distortion by increasing the regularity of this
Another use for non-uniform parametrizations is to allow good control of the boundaries of subdivision surfaces. We have previously
described how to handle boundaries in the curve case [Cashman et al.
2009] and this is easily transferred to the surface case. As a result,
we can use multiple knots to give surfaces which meet a univariate
B-spline curve at the boundary, whilst providing good control of
both tangent and curvature. Existing boundary conditions, such as
duplicating control points to gain a clamped surface, suffer from
zero curvature at the boundary.
With the introduction of subdivision surfaces which have the full
capabilities of NURBS, it is possible that end users need no longer
be presented with mutually exclusive surface primitives for NURBS
and Catmull-Clark subdivision surfaces. We believe that the surfaces
presented in this paper could allow many applications to present a
single, unified interface to users, allowing control which is familiar
from NURBS (non-uniform parametrizations at arbitrary degree)
alongside the flexibility of extraordinary points, which is familiar
from subdivision.
There are two areas in particular where there may be better solutions
than the ones we have presented: the affine combination used for
bounded curvature at valency 3 (Section 7.2), and the method used
for creating uniform knot spacing (Section 6). A natural development would be to make the condition max(k) < 2κ local rather
than global. A knot interval would then only be considered too
large if there was an interval of half the size sufficiently nearby
(where this distance depends on degree). This modification would
allow normal midpoint subdivision for knot intervals which increase
There might also be the potential for more extensive changes. We
could allow faces to have a different knot spacing on opposite edges
like Sederberg et al. [1998] and Müller et al. [2006]. This would
involve a generalization of the knot vectors which are collected as
shown in Figure 5. With this generalization in place, it might be
possible to incorporate extraordinary faces as well as extraordinary
As we mentioned in Section 6, our method makes no guarantees on
surface continuity if zero knot intervals lie adjacent to extraordinary
points. Furthermore, around extraordinary regions, we are unable to
insert an arbitrary knot while maintaining an invariant limit surface.
Neither of these limitations affects compatibility with NURBS, but
they allow room for further analysis and improvement.
Finally, the framework we describe here has a natural counterpart
for even degrees, where knot spacings are specified across a strip of
edges rather than a strip of faces. In future work, we hope to provide
bounded curvature modifications for the even degree schemes.
We would like to thank the anonymous reviewers for their helpful
feedback. Ursula Augsdörfer and Malcolm Sabin were supported by
EPSRC grant number EP/E025889/1.
2006. Tuning Subdivision by Minimising Gaussian Curvature
Variation Near Extraordinary Vertices. Comp. Graph. Forum 25,
3, 263–272.
S ABIN , M. A. 2009. Numerical Checking of C1 for Arbitrary Degree Quadrilateral Subdivision Schemes. In 13th IMA Conference
on the Mathematics of Surfaces, Springer. To appear.
BARTHE , L., AND KOBBELT, L. 2004. Subdivision scheme tuning
around extraordinary vertices. CAGD 21, 6, 561–583.
B OEHM , W. 1980. Inserting new knots into B-spline curves.
Computer-Aided Design 12, 4, 199–201.
C ASHMAN , T. J., D ODGSON , N. A., AND S ABIN , M. A. 2009.
Selective knot insertion for symmetric, non-uniform refine and
smooth B-spline subdivision. CAGD 26, 4, 472–479.
C ATMULL , E., AND C LARK , J. 1978. Recursively generated Bspline surfaces on arbitrary topological meshes. Computer-Aided
Design 10, 6, 350–355.
C OHEN , E., LYCHE , T., AND R IESENFELD , R. 1980. Discrete
B-splines and Subdivision Techniques in Computer-Aided Geometric Design and Computer Graphics. Computer Graphics and
Image Processing 14, 2, 87–111.
D E ROSE , T., K ASS , M., AND T RUONG , T. 1998. Subdivision
surfaces in character animation. In Proc. SIGGRAPH 98, 85–94.
FARIN , G. 2001. Curves and Surfaces for CAGD: A Practical
Guide, 5th ed. Morgan Kaufmann.
G ALIL , Z., AND I TALIANO , G. 1991. Data structures and algorithms for disjoint set union problems. ACM Computing Surveys
23, 3, 319–344.
G INKEL , I., AND U MLAUF, G. 2006. Loop subdivision with
curvature control. In Eurographics Symposium on Geom. Proc.,
Eurographics, K. Polthier and A. Sheffer, Eds., 163–171.
G ONSOR , D., AND N EAMTU , M. 2001. Subdivision Surfaces –
Can they be Useful for Geometric Modeling Applications? Tech.
Rep. 01-011, The Boeing Company.
H OLT, F. 1996. Toward a curvature-continuous stationary subdivision algorithm. Zeitschrift für angewandte Mathematik und
Mechanik 76, 423–424.
K ARCIAUSKAS , K., P ETERS , J., AND R EIF, U. 2004. Shape
characterization of subdivision surfaces–case studies. CAGD 21,
6, 601–614.
L ANE , J. M., AND R IESENFELD , R. F. 1980. A Theoretical Development for the Computer Generation and Display of Piecewise
Polynomial Surfaces. IEEE Trans. PAMI 2, 1, 35–46.
L EVIN , A. 2006. Modified subdivision surfaces with continuous
curvature. ACM Trans. Graph. 25, 3, 1035–1040.
L OOP, C. 2002. Bounded curvature triangle mesh subdivision with
the convex hull property. The Visual Computer 18, 316–325.
M A , W. 2005. Subdivision surfaces for CAD—an overview.
Computer-Aided Design 37, 7, 693–709.
M ÜLLER , K., R EUSCHE , L., AND F ELLNER , D. 2006. Extended
subdivision surfaces: Building a bridge between NURBS and
Catmull-Clark surfaces. ACM Trans. Graph. 25, 2, 268–292.
P ETERS , J., AND R EIF, U. 2008. Subdivision Surfaces. Springer.
P RAUTZSCH , H. 1997. Freeform splines. CAGD 14, 3, 201–206.
P RAUTZSCH , H. 1998. Smoothness of subdivision surfaces at
extraordinary points. Adv. in Comp. Math. 9, 3, 377–389.
S CHAEFER , S., AND G OLDMAN , R. 2009. Non-uniform Subdivision for B-splines of Arbitrary Degree. CAGD 26, 1, 75–81.
1998. Non-Uniform Recursive Subdivision Surfaces. In Proc.
SIGGRAPH 98, 387–394.
2003. T-splines and T-NURCCs. ACM Trans. Graph. 22, 3,
S TAM , J. 1998. Exact evaluation of Catmull-Clark subdivision
surfaces at arbitrary parameter values. In Proc. SIGGRAPH 98,
S TAM , J. 2001. On subdivision schemes generalizing uniform
B-spline surfaces of arbitrary degree. CAGD 18, 5, 383–396.
WARREN , J., AND W EIMER , H. 2001. Subdivision Methods for
Geometric Design. Morgan Kaufmann.
Z ORIN , D., AND S CHR ÖDER , P. 2001. A unified framework for
primal/dual quadrilateral subdivision schemes. CAGD 18, 5,
Appendix: C1 continuity
Our strategy for knot insertion (Section 6) creates a region of uniformity around every extraordinary point surrounded by non-zero knot
intervals. Therefore the continuity of the limit surface is determined
by a stationary subdivision matrix, and we can use eigenanalysis to
prove that our method produces C1 surfaces.
The proof uses Theorem 5.25 from Peters and Reif [2008]. The
subdivision matrices derived from our method satisfy the conditions
of the theorem: they are flip-symmetric, shift-invariant, and the
subdominant eigenvalues lie in the unit frequency Fourier block. It
remains to show that the derivatives of the characteristic ring (which
is made up of B-spline patches, of the degree of the scheme) do not
overlap. Due to symmetry, we need only check that the derivatives
in one direction of the first sector (drawn red in Figure 14) lie in
the same quadrant [Peters and Reif 2008]. This is enough to prove
that the characteristic ring is regular and injective, and thus that the
schemes are C1.
Using the variation diminishing property of B-splines, we can prove
this condition on the derivatives using the first differences of points
in the subdominant eigenvector [Augsdörfer et al. 2009]. Where it is
necessary to obtain a tighter bound, we can use subdivision steps to
bring the first differences closer to the derivative. These subdivision
steps require only straightforward uniform B-spline knot insertion.
We have verified this condition, and hence proved C1 continuity, for
degree from 3 to 19 and valency from 3 to 50. The trends suggest
that no problem is likely to occur at higher valencies and degrees.
R AMSHAW, L. 1989. Blossoms are polar forms. CAGD 6, 4,
R EIF, U. 1996. A Degree Estimate for Subdivision Surfaces of
Higher Regularity. Proc. Amer. Math. Soc. 124, 7, 2167–2174.
R EIF, U. 1998. TURBS—Topologically Unrestricted Rational
B-Splines. Constructive Approximation 14, 1, 57–77.
S ABIN , M. A., D ODGSON , N. A., H ASSAN , M. F., AND I VRIS SIMTZIS , I. P. 2003. Curvature behaviours at extraordinary
points of subdivision surfaces. Computer-Aided Design 35, 11,
S ABIN , M. 1991. Cubic recursive division with bounded curvature.
In Curves and surfaces, Academic Press, 411–414.
Figure 14: Characteristic rings [Peters and Reif 2008] at valencies
3 and 5 to 8 (left to right) and degrees 3 (top) and 7 (bottom). The
first sector is drawn in red.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF