PN quads
Jorg Peters
September 8, 2008
1 Introduction
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 nocost 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 CatmullClark subdivision [C('C] Even better, when triangles
and quads are mixed, limit points of polar subdivision should also be used
[MKPO7].
2 PNpatches
The indexing of the coefficients (control points) of a patch in total degree
threesided BernsteinBezier (BB) form and in tensorproduct 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.
bo no
bon b02
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)
hij 11
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 PNtriangle and PNquad 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.
2.2 PNtriangles
For each triangle, a threesided 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:
2
bo12: (1+ ) bij/6 Pi/3, default : 2 (3)
i4j,i,jc{0,1,2} i=0
2.3 PNquads
For each quad, a threesided geometry patch b of degree bi3 (Figure 1, .. i ..... i. fi
and a normal patch n of degree bi2 (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 biquadratics when
possible, we obtain
1
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 multisided facets, for example by
splitting into triangles and quads.
References
[CC78] E. Catmull and J. Clark. Recursively generated Bspline surfaces on arbitrary
topological meshes. Computer Aided Design, 10:350355, 1978.
[Far91] Gerald Farin. Curves and Surfaces for Computer Aided Geometric Design: A
Practical Guide. Second edition. Society for Industrial and Applied Mathematics,
1991.
[MKP07] Ashish Myles, Kestutis Karciauskas, and Jorg Peters. Extending CatmullClark
subdivision and PCCM with polar structures. In PG '07: F' ....../ I,., of the
15th I I Conference on Computer Graphics and Applications, pages 313320,
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, BiAnnual Conference
Series, pages 159166. ACM Press, 2001.
