A shading language on graphics hardware: the pixelflow shading system

Over the years, there have been two main branches of computer graphics image-synthesis research; one focused on interactivity, the other on image quality. Procedural shading is a powerful tool, commonly used for creating high-quality images and production animation. A key aspect of most procedural shading is the use of a shading language, which allows a high-level description of the color and shading of each surface. However, shading languages have been beyond the capabilities of the interactive graphics hardware community. We have created a parallel graphics multicomputer, PixelFlow, that can render images at 30 frames per second using a shading language. This is the first system to be able to support a shading language in real-time. In this paper, we describe some of the techniques that make this possible.

[1]  Katherine D. Blake To San Francisco , 1911 .

[2]  Nelson L. Max,et al.  Vectorized procedural models for natural terrain: Waves and islands in the sunset , 1981, SIGGRAPH '81.

[3]  John Cocke,et al.  Register allocation via graph coloring , 1981 .

[4]  Turner Whitted,et al.  A software test-bed for the development of 3-D raster graphics systems , 1981, SIGGRAPH '81.

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

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

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

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

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

[10]  Neil Hunt,et al.  The triangle processor and normal vector shader: a VLSI system for high performance graphics , 1988, SIGGRAPH.

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

[12]  Ulrich Neumann,et al.  Parallel Architectures and Algorithms for Real-Time Synthesis of High Quality Images Using Deferred Shading , 1989 .

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

[14]  Henry G. Dietz,et al.  Common Subexpression Induction , 1992, ICPP.

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

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

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

[18]  John G. Eyles,et al.  PixelFlow: high-speed rendering using image composition , 1992, SIGGRAPH.

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

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

[21]  システムソフトエンジニアリング OpenGL programming guide(日本語版) : the official guide to learning OpenGL, release 1 , 1993 .

[22]  Tom Davis,et al.  Opengl programming guide: the official guide to learning opengl , 1993 .

[23]  Hans-Peter Seidel,et al.  Implementing RenderMan ‐ Practice, Problems and Enhancements , 1994, Comput. Graph. Forum.

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

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

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

[27]  Anselmo Lastra,et al.  Real-time programmable shading , 1995, I3D '95.

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

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

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

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

[32]  James K. Hahn,et al.  BMRT: A Global Illumination Implementation of the RenderMan Standard , 1996, J. Graphics, GPU, & Game Tools.

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

[34]  Anselmo Lastra,et al.  PixelFlow: the realization , 1997, HWWS '97.

[35]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

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

[37]  Bernhard Hill,et al.  Comparative analysis of the quantization of color spaces on the basis of the CIELAB color-difference formula , 1997, TOGS.

[38]  Michael Garland,et al.  Simplifying surfaces with color and texture using quadric error metrics , 1998, Proceedings Visualization '98 (Cat. No.98CB36276).

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

[40]  Simplifying surfaces with color and texture using quadric error metrics , 1998, VIS '98.

[41]  Anselmo Lastra,et al.  A programmable pipeline for graphics hardware , 1998 .

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

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

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

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