September 8, 2008
The paper [VPBM01] proposed a simple construction that, when finely evalu-
ated, provides a visual smoothing effect for coarsely triangulated surface mod-
els. Such models appear for example in games. Since the main bottleneck of
the graphics hardware at th e turn of the century were the transfer of data
from the CPU to the GPU and the pixel shading operations, enabling this fine
evaluation in hardware provided an essentially no-cost visual improvement for
the user. At the time of writing, the tessellation hardware instrumental to the
fine evaluation is expected to go mainstream, i.e. accessible in the major APIs.
I originally implemented PN quads in 1999 to complement my implemen-
tation of PN triangles. But PN quads were not included in the final paper
[VPBM01]; and the construction seemed too straightforward to be communi-
cated on its own. However, it is good to have a reference, and so below, PN
triangles and PN quads are juxtaposed.
Another observation made at the time is that the shape of surfaces can
be made more rounded, by taking as input P and N not the mesh vertices and
normals (possibly obtained by averaging facet normals), but the limit points and
normals of of Catmull-Clark subdivision [C('C-] Even better, when triangles
and quads are mixed, limit points of polar subdivision should also be used
The indexing of the coefficients (control points) of a patch in total degree
three-sided Bernstein-Bezier (BB) form and in tensor-product BB form (see
e.g. [Far91]) are shown in Figure 1. We will construct a geometry patch b and
a separate normal patch n that is related but not identical to the normal field
of the geometry patch.
Snoi nlo n l20 n02
blo bo12 b20o
bi bi b21 b n n1 nl2 \n2
bo b03 b30 b3 no n3o = no3 n3
bol b02 b31 b32
noi nlo n0123 n23 n32
blo b13 b20 b23
bi b12 b21 b2 ni ni2 = n21 n2
Figure 1: Bezier points of the positional patch (left) and the normal patch(right).
Middle coefficients of the normal patch have two indices for easy enumeration
from either corner.
2.1 Boundary Construction.
With the indexing of Figure 1 and denoting the scalar product of two vectors
V1, V2 by V1 V2, we set the coefficients of the boundaries of the patches as
bi:= P, bi := (2Pi + Pj ((P, Pi) N) N,)/3, (1)
ni := N,, n i: h hij : N, + N (P, P), (2)
2 (P P) (N + Ni)
(P, P,). (P, -P,)
Then the boundary curves of PN-triangle and PN-quad geometry patch b
match the limit points Pi and have tangents orthogonal to the limit normal Ni
at the three vertices, i = 1, 2, 3. The (bi-)quadratic BB normal patch n matches
the Ni at the three vertices and changes according to cubic boundary curve of
the geometry patch. Only one of n and nji needs to be computed.
Since each boundary depends only on the two endpoints Pi and Pj and their
normals Ni and Nj, any two adjacent geometry patches join without gap and
also the associated normal patches join continuously. So, unless one examines
the silhouettes carefully at the middle of the edge, fine evaluation and rendering
using separately the geometry of b and the normal information from n gives
the appearance of a smooth surface.
For each triangle, a three-sided geometry patch b of degree 3 (Figure 1,top, left)
and a normal patch n of degree 2 (Figure 1,top,right) are generated. After
fixing the boundaries, only the central Bezier coefficient bo12 remains to be
determined. It is free to choose and is chosen to reproduce quadratics if the
input Pi and Ni stem from a quadratic:
bo12: (1+ ) bij/6 Pi/3, default : 2 (3)
For each quad, a three-sided geometry patch b of degree bi-3 (Figure 1, .. i ..... i. fi
and a normal patch n of degree bi-2 (Figure 1,bottom,right) are generated. We
need only set four interior coefficients of b in a symmetric fashion and one central
coefficient of n. Abbreviating E := E41 and interpreting index calculations
modulo n 4, we define q := E(bi, _i +bi,i+l) as the sum of the eight bound-
ary coefficients that are not corners. Choosing to reproduce bi-quadratics when
possible, we obtain
bi,i+2 := (1 + a)E, (aV, default = 2, (4)
18E, := 2 (bi,i+i + bi,i + q) (bi+2,i+l + bi+2,i 1),
9V := 4P + 2(P, + Pi)+PP+ 2,
no123 := (2 n,+1 + i) /12. (5)
The construction can be generalized to multi-sided facets, for example by
splitting into triangles and quads.
[CC78] E. Catmull and J. Clark. Recursively generated B-spline surfaces on arbitrary
topological meshes. Computer Aided Design, 10:350-355, 1978.
[Far91] Gerald Farin. Curves and Surfaces for Computer Aided Geometric Design: A
Practical Guide. Second edition. Society for Industrial and Applied Mathematics,
[MKP07] Ashish Myles, Kestutis Karciauskas, and Jorg Peters. Extending Catmull-Clark
subdivision and PCCM with polar structures. In PG '07: F' ....../ I,., of the
15th I I Conference on Computer Graphics and Applications, pages 313-320,
Washington, DC, USA, 2007. IEEE Computer Society.
[VPBM01] Alex Vlachos, Jorg Peters, Chas Boyd, and Jason L. Mitchell. Curved PN tri-
angles. In 2001, Symposium on Interactive 3D Graphics, Bi-Annual Conference
Series, pages 159-166. ACM Press, 2001.