PNG1 triangles for tangent plane continuous surfaces on the GPU

Improving the visual appearance of coarse triangle meshes is usually done with graphics hardware with per-pixel shading techniques. Improving the appearance at silhouettes is inherently hard, as shading has only a small influence there and the geometry must be corrected. With the new geometry shader stage released with DirectX 10, the functionality to generate new primitives from an input primitive is available. Also the shader can access a restricted primitive neighborhood. In this paper, we present a curved surface patch that can deal with this restricted data available in the geometry shader. A surface patch is defined over a triangle with its vertex normals and the three edge neighbor triangles. Compared to PN triangles, which define a curved patch using just the triangle with its vertex normals, our surface patch is G1 continuous with its three neighboring patches. The patch is obtained by blending two cubic Bezier patches for each triangle edge. In this way, our surface is especially suitable for efficient, high-quality tessellation on the GPU. We show the construction of the surface and how to add special features such as creases. Thus, the appearance of the surface patch can be fine-tuned easily. The surface patch is easy to integrate into existing polygonal modeling and rendering environments. We give some examples using Autodesk Maya.®

[1]  Stephan Mann,et al.  A parametric hybrid triangular Be´zier patch , 1998 .

[2]  Maxim Kazakov,et al.  Catmull-Clark subdivision for geometry shaders , 2007, AFRIGRAPH '07.

[3]  Charles T. Loop,et al.  Smooth Subdivision Surfaces Based on Triangles , 1987 .

[4]  Tony DeRose,et al.  Parametric surface interpolation , 1992, IEEE Computer Graphics and Applications.

[5]  David Blythe The Direct3D 10 system , 2006, ACM Trans. Graph..

[6]  Jörg Peters,et al.  Curved PN triangles , 2001, I3D '01.

[7]  Tony DeRose,et al.  Piecewise smooth surface reconstruction , 1994, SIGGRAPH.

[8]  Tamy Boubekeur,et al.  A Flexible Kernel for Adaptive Mesh Refinement on GPU , 2008, Comput. Graph. Forum.

[9]  Stefanie Hahmann,et al.  Triangular G1 interpolation by 4-splitting domain triangles , 2000, Comput. Aided Geom. Des..

[10]  Reinhard Klein,et al.  GPU-based trimming and tessellation of NURBS and T-Spline surfaces , 2005, SIGGRAPH '05.

[11]  Tamy Boubekeur,et al.  QAS: Real-Time Quadratic Approximation of Subdivision Surfaces , 2007, 15th Pacific Conference on Computer Graphics and Applications (PG'07).

[12]  Hiroaki Chiyokura,et al.  Design of solids with free-form surfaces , 1983, SIGGRAPH.

[13]  Charles T. Loop,et al.  Approximating Catmull-Clark subdivision surfaces with bicubic patches , 2008, TOGS.

[14]  Carlo H. Séquin,et al.  Local surface interpolation with Bézier patches , 1987, Comput. Aided Geom. Des..

[15]  Gerald Farin,et al.  Curves and surfaces for cagd , 1992 .

[16]  Jörg Peters,et al.  A realtime GPU subdivision kernel , 2005, SIGGRAPH '05.

[17]  G. Farin Curves and Surfaces for Cagd: A Practical Guide , 2001 .

[18]  Stephen Mann An Improved Parametric Side-Vertex Triangle Mesh Interpolant , 1998, Graphics Interface.

[19]  Karsten Opitz,et al.  Hybrid Cubic Bézier Triangle Patches , 1992 .