Automatic shader level of detail

Current graphics hardware can render procedurally shaded objects in real-time. However, due to resource and performance limitations, interactive shaders can not yet approach the complexity of shaders written for film production and software rendering, which may stretch to thousands of lines. These constraints limit not only the complexity of a single shader, but also the number of shaded objects that can be rendered at interactive rates. This problem has many similarities to the rendering of large models, the source of extensive research in geometric simplification and level of detail. We introduce an analogous process for shading : shader simplification. Starting from an initial detailed shader, shader simplification automatically produces a set of simplified shaders or a single new shader with extra level-of-detail parameters that control the shader execution. The resulting level-of-detail shader can automatically adjust its rendered appearance based on measures of distance, size, or importance, as well as physical limits such as rendering time budget or texture usage. We demonstrate shader simplification with a system that automatically creates shader levels of detail to reduce the number of texture accesses, one common limiting factor for current hardware.

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

[2]  Maryann Simmons,et al.  Per-pixel smooth shader level of detail , 2003, SIGGRAPH '03.

[3]  Jan Kautz,et al.  Interactive rendering with arbitrary BRDFs using separable approximations , 1999, SIGGRAPH '99.

[4]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[5]  Alain Fournier,et al.  Separating Reflection Functions for Linear Radiosity , 1995, Rendering Techniques.

[6]  Ken Perlin,et al.  An image synthesizer , 1988 .

[7]  Nelson L. Max,et al.  Bidirectional reflection functions from surface bump maps , 1987, SIGGRAPH.

[8]  Michael Garland,et al.  Simplifying surfaces with color and texture using quadric error metrics , 1998, IEEE Visualization.

[9]  David S. Ebert,et al.  Texturing and Modeling: A Procedural Approach , 1994 .

[10]  Hans-Peter Seidel,et al.  Sampling procedural shaders using affine arithmetic , 1997, SIGGRAPH '97.

[11]  William E. Lorensen,et al.  Decimation of triangle meshes , 1992, SIGGRAPH.

[12]  Hugues Hoppe,et al.  Progressive meshes , 1996, SIGGRAPH.

[13]  Dinesh Manocha,et al.  Simplification envelopes , 1996, SIGGRAPH.

[14]  Pat Hanrahan,et al.  A language for shading and lighting calculations , 1990, SIGGRAPH.

[15]  Pat Hanrahan,et al.  An efficient representation for irradiance environment maps , 2001, SIGGRAPH.

[16]  Hans-Peter Seidel,et al.  Towards interactive bump mapping with anisotropic shift-variant BRDFs , 2000, Workshop on Graphics Hardware.

[17]  Anselmo Lastra,et al.  A shading language on graphics hardware: the pixelflow shading system , 1998, SIGGRAPH.

[18]  Erik Ruf,et al.  Specializing shaders , 1995, SIGGRAPH.

[19]  James T. Kajiya,et al.  Anisotropic reflection models , 1985, SIGGRAPH.

[20]  Ulrich Neumann,et al.  Real-time procedural textures , 1992, I3D '92.

[21]  Michael D. McCool,et al.  Real-time shading , 2002, SIGGRAPH '04.

[22]  Carlo H. Séquin,et al.  Adaptive display algorithm for interactive frame rates during visualization of complex virtual environments , 1993, SIGGRAPH.

[23]  Pat Hanrahan,et al.  Efficient partitioning of fragment shaders for multipass rendering on programmable graphics hardware , 2002, HWWS '02.

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

[25]  Pat Hanrahan,et al.  A real-time procedural shading system for programmable graphics hardware , 2001, SIGGRAPH.

[26]  Hans-Peter Seidel,et al.  Sampling procedural shaders using affine arithmetic , 1998, TOGS.

[27]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[28]  David S. Ebert,et al.  Texturing and Modeling , 1998 .

[29]  Dinesh Manocha,et al.  Appearance-preserving simplification , 1998, SIGGRAPH.

[30]  Nelson L. Max,et al.  Smooth transitions between bump rendering algorithms , 1993, SIGGRAPH.

[31]  Dan B. Goldman Fake fur rendering , 1997, SIGGRAPH.

[32]  Jung Hong Chuang Level of Detail for 3D Graphics , 2002 .

[33]  David Salesin,et al.  Hierarchical image caching for accelerated walkthroughs of complex environments , 1996, SIGGRAPH.

[34]  Marc Olano,et al.  Interactive multi-pass programmable shading , 2000, SIGGRAPH.

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

[36]  Daniel G. Aliaga Visualization of complex models using dynamic texture-based simplification , 1996, Proceedings of Seventh Annual IEEE Visualization '96.

[37]  Greg Turk,et al.  Re-tiling polygonal surfaces , 1992, SIGGRAPH.

[38]  Michael D. McCool,et al.  Homomorphic factorization of BRDFs for high-performance rendering , 2001, SIGGRAPH.