Real-time Reyes-style adaptive surface subdivision

We present a GPU based implementation of Reyes-style adaptive surface subdivision, known in Reyes terminology as the Bound/Split and Dice stages. The performance of this task is important for the Reyes pipeline to map efficiently to graphics hardware, but its recursive nature and irregular and unbounded memory requirements present a challenge to an efficient implementation. Our solution begins by characterizing Reyes subdivision as a work queue with irregular computation, targeted to a massively parallel GPU. We propose efficient solutions to these general problems by casting our solution in terms of the fundamental primitives of prefix-sum and reduction, often encountered in parallel and GPGPU environments. Our results indicate that real-time Reyes subdivision can indeed be obtained on today's GPUs. We are able to subdivide a complex model to subpixel accuracy within 15 ms. Our measured performance is several times better than that of Pixar's RenderMan. Our implementation scales well with the input size and depth of subdivision. We also address concerns of memory size and bandwidth, and analyze the feasibility of conventional ideas on screen-space buckets.

[1]  Mark Segal,et al.  The OpenGL Graphics System: A Specification , 2004 .

[2]  Henry P. Moreton,et al.  Watertight tessellation using forward differencing , 2001, HWWS '01.

[3]  Brian A. Barsky,et al.  Advanced Renderman: Creating CGI for Motion Pictures , 1999 .

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

[5]  Aaron E. Lefohn,et al.  Lpics: a hybrid hardware-accelerated relighting engine for computer cinematography , 2005, SIGGRAPH '05.

[6]  Wolfgang Straßer,et al.  Hardware support for adaptive subdivision surface rendering , 2001, HWWS '01.

[7]  Yao Zhang,et al.  Scan primitives for GPU computing , 2007, GH '07.

[8]  Claudio Zunino,et al.  A PVM-Based Parallel Implementation of the REYES Image Rendering Architecture , 2002, PVM/MPI.

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

[10]  Edward T. Grochowski,et al.  Larrabee: A many-Core x86 architecture for visual computing , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[11]  P.H. Christensen,et al.  Ray Tracing for the Movie `Cars' , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[12]  William J. Dally,et al.  Comparing Reyes and OpenGL on a stream architecture , 2002, HWWS '02.

[13]  John Hart,et al.  ACM Transactions on Graphics , 2004, SIGGRAPH 2004.

[14]  Matt Pharr,et al.  Programmable graphics: the future of interactive rendering , 2008, SIGGRAPH '08.

[15]  Eric Enderton,et al.  GPU-accelerated high-quality hidden surface removal , 2005, HWWS '05.

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