Efficient GPU rendering of subdivision surfaces using adaptive quadtrees

We present a novel method for real-time rendering of subdivision surfaces whose goal is to make subdivision faces as easy to render as triangles, points, or lines. Our approach uses standard GPU tessellation hardware and processes each face of a base mesh independently, thus allowing an entire model to be rendered in a single pass. The key idea of our method is to subdivide the u, v domain of each face ahead of time, generating a quadtree structure, and then submit one tessellated primitive per input face. By traversing the quadtree for each post-tessellation vertex, we are able to accurately and efficiently evaluate the limit surface. Our method yields a more uniform tessellation of the surface, and faster rendering, as fewer primitives are submitted. We evaluate our method on a variety of assets, and realize performance that can be three times faster than state-of-the-art approaches. In addition, our streaming formulation makes it easier to integrate subdivision surfaces into applications and shader code written for polygonal models. We illustrate integration of our technique into a full-featured video game engine.

[1]  Mark Meyer,et al.  Dynamic feature-adaptive subdivision , 2015, I3D.

[2]  Charles T. Loop,et al.  Improving the Parameterization of Approximate Subdivision Surfaces , 2012, Comput. Graph. Forum.

[3]  Leif Kobbelt,et al.  √3-subdivision , 2000, SIGGRAPH.

[4]  Charles T. Loop,et al.  Approximating subdivision surfaces with Gregory patches for hardware tessellation , 2009, ACM Trans. Graph..

[5]  Nick Baker,et al.  Xbox 360 System Architecture , 2006, IEEE Micro.

[6]  Malcolm A. Sabin,et al.  Behaviour of recursive division surfaces near extraordinary points , 1998 .

[7]  Jason L. Mitchell,et al.  Real-Time Creased Approximate Subdivision Surfaces with Displacements , 2010, IEEE Transactions on Visualization and Computer Graphics.

[8]  Mohamed S. Ebeida,et al.  Parallel view-dependent tessellation of Catmull-Clark subdivision surfaces , 2009, High Performance Graphics.

[9]  Jörg Peters,et al.  GPU conversion of quad meshes to smooth surfaces , 2008, SPM '08.

[10]  Peter Schröder,et al.  Rapid evaluation of Catmull-Clark subdivision surfaces , 2002, Web3D '02.

[11]  Matthias Nießner,et al.  Efficient Evaluation of Semi-Smooth Creases in Catmull-Clark Subdivision Surfaces , 2012, Eurographics.

[12]  Leif Kobbelt,et al.  Interpolatory Subdivision on Open Quadrilateral Nets with Arbitrary Topology , 1996, Comput. Graph. Forum.

[13]  Michael Wimmer,et al.  Parallel Reyes-style adaptive subdivision with bounded memory usage , 2015, I3D.

[14]  Ahmad H. Nasri,et al.  Polyhedral subdivision methods for free-form surfaces , 1987, TOGS.

[15]  Matthias Nießner,et al.  State of the Art Report on Real-time Rendering with Hardware Tessellation , 2014, Eurographics.

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

[17]  David R. Forsey,et al.  Hierarchical B-spline refinement , 1988, SIGGRAPH.

[18]  A. A. Ball,et al.  Recursively generated B-spline surfaces , 1984 .

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

[20]  Tony DeRose,et al.  Feature-adaptive GPU rendering of Catmull-Clark subdivision surfaces , 2012, TOGS.

[21]  David Eppstein,et al.  Motorcycle Graphs: Canonical Quad Mesh Partitioning , 2008, Comput. Graph. Forum.

[22]  Tony DeRose,et al.  Subdivision surfaces in character animation , 1998, SIGGRAPH.

[23]  Bruno Lévy,et al.  Quad‐Mesh Generation and Processing: A Survey , 2013, Comput. Graph. Forum.

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

[25]  Robert L. Cook,et al.  The Reyes image rendering architecture , 1987, SIGGRAPH.

[26]  Wade Brainerd Catmull-Clark Subdivision Surfaces , 2018 .

[27]  E. Catmull,et al.  Recursively generated B-spline surfaces on arbitrary topological meshes , 1978 .

[28]  Jörg Peters,et al.  Fast Parallel Construction of Smooth Surfaces from Meshes with Tri/Quad/Pent Facets , 2008, Comput. Graph. Forum.

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

[30]  Jörg Peters,et al.  GPU smoothing of quad meshes , 2008, 2008 IEEE International Conference on Shape Modeling and Applications.

[31]  Matthias Nießner,et al.  Analytic displacement mapping using hardware tessellation , 2013, TOGS.

[32]  Jason L. Mitchell,et al.  Real-time creased approximate subdivision surfaces , 2009, I3D '09.

[33]  Jos Stam,et al.  Exact evaluation of Catmull-Clark subdivision surfaces at arbitrary parameter values , 1998, SIGGRAPH.

[34]  Matthias Nießner,et al.  Real‐Time Rendering Techniques with Hardware Tessellation , 2016, Comput. Graph. Forum.