Subdivision‐Specialized Linear Algebra Kernels for Static and Dynamic Mesh Connectivity on the GPU

Subdivision surfaces have become an invaluable asset in production environments. While progress over the last years has allowed the use of graphics hardware to meet performance demands during animation and rendering, high‐performance is limited to immutable mesh connectivity scenarios. Motivated by recent progress in mesh data structures, we show how the complete Catmull‐Clark subdivision scheme can be abstracted in the language of linear algebra. While this high‐level formulation allows for a fully parallel implementation with significant performance gains, the underlying algebraic operations require further specialization for modern parallel hardware. Integrating domain knowledge about the mesh matrix data structure, we replace costly general linear algebra operations like matrix‐matrix multiplication by specialized kernels. By further considering innate properties of Catmull‐Clark subdivision, like the quad‐only structure after refinement, we achieve an additional order of magnitude in performance and significantly reduce memory footprints. Our approach can be adapted seamlessly for different use cases, such as regular subdivision of dynamic meshes, fast evaluation for immutable topology and feature‐adaptive subdivision for efficient rendering of animated models. In this way, patchwork solutions are avoided in favor of a streamlined solution with consistent performance gains throughout the production pipeline. The versatility of the sparse matrix linear algebra abstraction underlying our work is further demonstrated by extension to other schemes such as and Loop subdivision.

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

[2]  M. Sabin,et al.  Behaviour of recursive division surfaces near extraordinary points , 1978 .

[3]  Hans-Peter Seidel,et al.  A GPU‐Adapted Structure for Unstructured Grids , 2017, Comput. Graph. Forum.

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

[5]  Michael Deering,et al.  Geometry compression , 1995, SIGGRAPH.

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

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

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

[9]  Hugues Hoppe,et al.  Optimization of mesh locality for transparent vertex caching , 1999, SIGGRAPH.

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

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

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

[13]  Michael Driscoll,et al.  Subdivision Surface Evaluation as Sparse Matrix-Vector Multiplication , 2015 .

[14]  Bruce G. Baumgart Winged edge polyhedron representation. , 1972 .

[15]  Robert L. Cook,et al.  Shade trees , 1984, SIGGRAPH.

[16]  Kun Zhou,et al.  RenderAnts: interactive Reyes rendering on GPUs , 2009, SIGGRAPH 2009.

[17]  George Merrill Chaikin,et al.  An algorithm for high-speed curve generation , 1974, Comput. Graph. Image Process..

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

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

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

[21]  André Stork,et al.  Ternary Sparse Matrix Representation for Volumetric Mesh Subdivision and Processing on GPUs , 2017, Comput. Graph. Forum.

[22]  Anjul Patney,et al.  Task management for irregular-parallel workloads on the GPU , 2010, HPG '10.

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

[24]  Matthias Nießner,et al.  Efficient GPU rendering of subdivision surfaces using adaptive quadtrees , 2016, ACM Trans. Graph..

[25]  Youcef Saad,et al.  A Basic Tool Kit for Sparse Matrix Computations , 1990 .

[26]  Hans-Peter Seidel,et al.  Directed Edges - A Scalable Representation for Triangle Meshes , 1998, J. Graphics, GPU, & Game Tools.

[27]  Leonidas J. Guibas,et al.  Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams , 1983, STOC.

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

[29]  PASCAL LIENHARDT,et al.  N-Dimensional Generalized Combinatorial Maps and Cellular Quasi-Manifolds , 1994, Int. J. Comput. Geom. Appl..

[30]  Jörg Peters,et al.  Patching Catmull-Clark meshes , 2000, SIGGRAPH.

[31]  Kari Pulli,et al.  Fast rendering of subdivision surfaces , 1996, SIGGRAPH '96.

[32]  Daniel A. White,et al.  FEMSTER: An object-oriented class library of high-order discrete differential forms , 2005, TOMS.

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