SMASH: A Next-Generation API for Programmable Graphics Accelerators

Michael D. McCool · 2000

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.

Read the paper · More papers on PaperTik