UFL CISE TR 01-001: Modifications of PCCM
University of Florida
This note discusses some finer points of Patching Catmull-Clark
Meshes pointed out in the Siggraph talk. The modifications have
been implemented and examples are posted at .
(1) The normal of the PCCM surface at an extraordinary point is
free to choose. In particular, we may choose it as the normal of
the Catmull-Clark limit surface in the extraordinary point. We give
the corresponding formula below. (2) The perturbation of the mesh
for higher-order saddle points of even valence can lead to undesir-
able flatness of the surface in the neighborhood of the extraordinary
point. There is a remedy. (3) Pulling and pushing control meshes
after a subdivision step allows the distribution of curvature e.g. cre-
ating sharper features. This may be viewed,as is common in com-
puter aided design, as adjusting the blend radius between primary
surfaces. This note shows how to include blend ratios, i.e. control
of the sharpness of transitions, into the PCCM framework.
2 Interpolation of the Catmull-Clark limit
To make the normal of PCCM equal to the Catmull-Clark normal
we set the tangent coefficient Qlo to
o10 = Qoo + a (wnAPs3 + (A, + A+)P33),
Q3(2 + wo.)
n, = 1 +c +os( /2(9+c)),
default = 1,
A+(i,j)= An,(i,j + 1).
3 Higher-order saddle points of even va-
See  for illustrations.
A (simple) saddle point is surrounded by two dips and two raises.
A higher-order saddle point of even valence is surrounded by three
or more dips and raises. Such points occur for example in objects
of higher genus, e.g. where three or more handles meet. Since the
curvature of a smooth surface has a unique maximum and mini-
mum direction if it is not zero, higher-order saddle points have zero
Since the first piece of the boundary of a bicubic spline
patch generated by PCCM is of degree 2, zero curvature im-
plies that the first piece should be a line segment. This is cor-
rectly enforced by enforcing the alternating sum condition, r =
Ci=l(- 1)Q (i)/n = 0. However, generating the correct
straight line segment has a sometimes undesirable shape effect by
pushing the flatness that should be local to the higher-order saddle
point out into the surrounding geometry. Note that the issue here is
beauty, not smoothness.
*NSF NYI CCR-9457806
In the following we assume that r $ 0, e.g. r > 10-4.
One, often reasonable approach, is to simply accept a tangent
discontinuity and not enforce r = 0 noting that r decreases by
factor of 1/4 with each subdivision.
A second approach requires inserting an additional knot at u = 1
and defining a G1 rather than a C1 join across the edges of the
polynomial pieces attached to the extraordinary point.
A third approach is to render the PCCM patch without the square
[0, 1]2 (solid squares in Figure 1 of PCCM), i.e. trim out the polyno-
mial piece attached to the higher-order saddle point. In place of the
hole we insert n Bezier patches of degree bi-4. This increases the
degree of the boundary piece to 3 so that the curve is not necessar-
ily a straight line segment if the first three coefficients are collinear.
This approach is explained below.
(1) We adjust the boundary curve in the Knot Insertion stage:
Qio +- Qoo + AQio,
r2n= i(-1)'Q2o(i)/n, eR
q(i) = -(-1)'ir20,
Q20 +- Q2o + q,
Q21 +- Q21 + q, Q12 +- Qi + q.
Here Q2(1) = Qi2(1 1).
(2) We assemble the n bicubic patches with coefficients cij(1), I =
1,... n from the Knot Insertion stage. For simplicity we drop the
(1) that indicates the Ith patch:
C03 C13 C23 C33
C02 C12 C22 C32
C01 C11 C21 C31
C00 C10 C20 C30.
Q14+QZ Q4+~Qz Q24+Q22+Q44+Q42
2 2 I
Q12 Q22 Q2242
Q11 21 2+4
Q10 Q20 Q20+Q40
(3) We degree-raise this patch first in the u-direction then in the
i 4-i 0,... ,4, j 0,... ,3,
hij = ci-1,j + cij,, i = 0,... 4, j = 0,.. .,3,
0,... 4, j = 0,... ,4
and obtain the bi-4 patch
J 4 j
bij = 4hi,-l + hi i
"' 4 4 '>
(4) We adjust the biquartic patches. The superscript + denotes a
shift: b (1) = bij (1 + 1) and c = cos(27r/n).
P 0 4
bil +- Brn4 ,
rll = bol + -(co02 col),
702 = ,, -I (b l + b'd)/2 + g(c03
b12 +- b12 + ro2,
b2 +- b21 + r02,
4 Blend ratios for Catmull-Clark Meshes
PCCM does not depend on the actual placement of the coefficients
in the Catmull-Clark mesh. In particular, we can choose differ-
ent rules, say a least squares fit to data, to determine the location
of the mesh points. One option is to group the mesh nodes closer
together or spread them further apart in certain regions or to pull
points to distribute curvature. Since this basic idea was used ear-
lier in the context of biquadratic splines and the application was
to define blends between polynomial patches in the sense of geo-
metric design, the numbers governing the process are called 'blend
ratios'; semi-smooth creasing would be just as good a name for the
The question then is how to move a mesh predictably with the
least amount of (programming or user interaction) effort. This sec-
tion describes such a mechanism in the context of the data structures
of PCCM. The work amounts to an extra pass along the boundaries
of an array for Catmull-Clark subdivision. The effect is to pull (or
repell) the boundary coefficients Pio of an edge towards a cubic
curve that is defined by the boundary coefficients at the coarsest
level. At the same time we pull the tangent coefficients towards
the boundary coefficients. These two effects should really have a
separate control but that would lead to more notation.
Every blend-edge pq at level f has two associated scalars
a~ aqp e [0, 1].
If a q aq, = 1 the edge will be sharp. If a, = ap = 0 the
edge will be rounded. If aq = 1 and atp = 0 the edge will start
sharp and become more rounded.
Conceptually, after refining the quad to level f + 1, we also com-
pute the refinement of the cubic boundary curve associated with
the blend-edge. Then we average the control points of this bound-
ary curve and the control points corresponding to the boundary in
the quad using aq and aqp. The only challenge is to update con-
sistently in the neighborhood of vertices within the framework of
For each quad, we store apq and aqp for each edge.
Let Pi be the ith control point, i = 0,... k, k = 2e of the
boundary in the quad at level L and P ,i and P_,i the control point
to the left and right of the boundary traversing from p to q. At
level f we first replace the odd-labeled then the even-labeled control
Fori =2,... ,k 1 andj =2i- 1
C= (P + P')/2, a a aq + J aqp [0,1]
2k p 2k
Pj+l aC + (1 a)P +1
P,+- aC + (1 a)P+,
P l + aC + (1 a)Pt
I 0 4
Figure 1: blend ratios
and for =1,... k 1 and j = 2i,
S=( 1 + 6Pi + Pi+)/8, a
1 +- 0aC + (1 a)Pj+l
P+ +- aC + (1
3 .- 2k- [, 1]
2kaq + 2k 0,1]
P+ L- aC + (1 a)P'
For each vertex p with position P, neighbor node positions Pq
and the neighbors locally renamed v = 1,.. n (a,, determines
stretching perpendicular to edge pv) set
1 j 2k -1
Cv = (Pt + Ph)/2, a = Tav + -2k a E [0, 1]
p 4+ (1i av/n)P'+' + av/np'
+- (1 +
pl+1 au-1 + a+1 pi
+ (1 a'-a + a+1 ) (a G + (1 av)P+)
v,v+1 +- aavv+iP + (1 a( ai+l)Cv, + (1 av,)a,+lC,+
+(1 -a,)(1 a,+)Pl .
 L.J. Shiue, implementation snapshots