SMASH: A Next-Generation API for Programmable Graphics Accelerators

The SMASH API is a testbed for real-time, low-level graphics concepts. It is being developed to serve as a concrete target for the development of advanced extensions to OpenGL as well as a driver to test hardware architectures to support these extensions. SMASH is syntactically and conceptually similar to OpenGL but supports (along with other experimental features) a programmable shader sub-API that is compatible with both multi-pass and single-pass implementations of shaders. Arbitrary numbers of shader parameters of various types can be bound to vertices of geometric primitives using a simple immediatemode mechanism. Run-time specification, manipulation, and compilation of shaders is supported. The intermediate-level shading language includes integrated support for per-vertex and perfragment shaders under a common programming model. Implementation of real-time rendering effects using SMASH could be enhanced with metaprogramming toolkits and techniques, up to and including RenderMan-like textual shading languages and C++ toolkits with similar levels of compactness and functionality. We give several examples of how a two-term separable BRDF approximation could be implemented using such higher-level constructs.

[1]  Homan Igehy,et al.  Pomegranate: a fully scalable graphics architecture , 2000, SIGGRAPH.

[2]  Allan Porterfield,et al.  The Tera computer system , 1990 .

[3]  Kurt Akeley,et al.  The accumulation buffer: hardware support for high-quality rendering , 1990, SIGGRAPH.

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

[5]  Michael D. McCool,et al.  Texture shaders , 1999, Workshop on Graphics Hardware.

[6]  Hans-Peter Seidel,et al.  Applications of pixel textures in visualization and realistic image synthesis , 1999, SI3D.

[7]  Erik Lindholm,et al.  A user-programmable vertex engine , 2001, SIGGRAPH.

[8]  Alexander Keller,et al.  Instant radiosity , 1997, SIGGRAPH.

[9]  Tomas Akenine-Möller,et al.  Real-time rendering , 1997 .

[10]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[11]  Eugene Lapidous,et al.  Optimal depth buffer for low-cost graphics hardware , 1999, Workshop on Graphics Hardware.

[12]  Pierre Poulin,et al.  A model for anisotropic reflection , 1990, SIGGRAPH.

[13]  Homan Igehy Scalable Graphics Architectures: Interface & Texture in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy , 2000 .

[14]  Erik Reinhard,et al.  Dynamic Acceleration Structures for Interactive Ray Tracing , 2000, Rendering Techniques.

[15]  Steven Anthony Guccione Programming fine-grained reconfigurable architectures , 1995 .

[16]  Jan Kautz,et al.  Hardware Rendering with Bidirectional Reflectances , 1999 .

[17]  Richard Szeliski,et al.  The lumigraph , 1996, SIGGRAPH.

[18]  William J. Dally,et al.  Polygon rendering on a stream architecture , 2000, Workshop on Graphics Hardware.

[19]  Hans-Peter Seidel,et al.  Unified Approach to Prefiltered Environment Maps , 2000, Rendering Techniques.

[20]  Frédo Durand,et al.  Interactive Tone Mapping , 2000, Rendering Techniques.

[21]  Homan Igehy,et al.  The design of a parallel graphics interface , 1998, SIGGRAPH.

[22]  Marc Olano,et al.  Reflection space image based rendering , 1999, SIGGRAPH.

[23]  Steve D. Upstill,et al.  The renderman companion - a programmer's guide to realistic computer graphics , 1990 .

[24]  Hans-Peter Seidel,et al.  Canned Lightsources , 1998, Rendering Techniques.

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

[26]  Marc Olano,et al.  Triangle scan conversion using 2D homogeneous coordinates , 1997, HWWS '97.

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

[28]  Ari Rappoport,et al.  Interactive reflections on curved objects , 1998, SIGGRAPH.

[29]  Paul Diefenbach,et al.  multi-pass pipeline rendering: interaction and realism through hardware provisions , 1996 .

[30]  Hans-Peter Seidel,et al.  Interactive Walkthroughs and Higher Order Global Illumination , 1995 .

[31]  James F. Blinn,et al.  Jim Blinn's corner - A trip down the graphics pipeline: line clipping , 1991, IEEE Computer Graphics and Applications.

[32]  James F. Blinn,et al.  Floating-point tricks , 1997 .

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

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

[35]  Michael D. McCool,et al.  Shadow volume reconstruction from depth maps , 2000, TOGS.

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

[37]  Hans-Peter Seidel,et al.  Illuminating micro geometry based on precomputed visibility , 2000, SIGGRAPH.

[38]  Donald P. Greenberg,et al.  Fitting virtual lights for non-diffuse walkthroughs , 1997, SIGGRAPH.

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

[40]  Norman I. Badler,et al.  Multi-pass pipeline rendering: realism for dynamic environments , 1997, SI3D.

[41]  Anant Agarwal,et al.  APRIL: a processor architecture for multiprocessing , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[42]  Reiner W. Hartenstein,et al.  Using the KressArray for reconfigurable computing , 1998, Other Conferences.

[43]  Juan Pineda,et al.  A parallel algorithm for polygon rasterization , 1988, SIGGRAPH.

[44]  Wolfgang Stuerzlinger,et al.  Interactive Rendering of Globally Illuminated Glossy Scenes , 1997, Rendering Techniques.

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

[46]  Hans-Peter Seidel,et al.  An Image-Based Model for Realistic Lens Systems in Interactive Computer Graphics , 1997, Graphics Interface.

[47]  Marc Levoy,et al.  Light field rendering , 1996, SIGGRAPH.

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

[49]  Reiner W. Hartenstein,et al.  Mapping Applications onto Reconfigurable Kress Arrays , 1999, FPL.

[50]  Haitham Akkary,et al.  A dynamic multithreading processor , 1998, Proceedings. 31st Annual ACM/IEEE International Symposium on Microarchitecture.

[51]  A. James Stewart,et al.  General Calculations using Graphics Hardware with Applications to Interactive Caustics , 2000, Rendering Techniques.

[52]  Hans-Peter Seidel,et al.  Realistic, hardware-accelerated shading and lighting , 1999, SIGGRAPH.

[53]  Jan Kautz,et al.  Approximation of Glossy Reflection with Prefiltered Environment Maps , 2000, Graphics Interface.

[54]  Ken Perlin,et al.  [Computer Graphics]: Three-Dimensional Graphics and Realism , 2022 .

[55]  Tom McREYNOLDS,et al.  Advanced graphics programming techniques using opengl , 1998, SIGGRAPH 1998.

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

[57]  Mark Segal,et al.  Fast shadows and lighting effects using texture mapping , 1992, SIGGRAPH.

[58]  Dipl.-Ing,et al.  Real-time Rendering , 2022 .

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