ABSTRACT
Real-time graphics hardware is becoming programmable, but this programmable hardware is complex and difficult to use given current APIs. Higher-level abstractions would both increase programmer productivity and make programs more portable. However, it is challenging to raise the abstraction level while still providing high performance. We have developed a real-time procedural shading language system designed to achieve this goal.
Our system is organized around multiple computation frequencies. For example, computations may be associated with vertices or with fragments/pixels. Our system's shading language provides a unified interface that allows a single procedure to include operations from more than one computation frequency.
Internally, our system virtualizes limited hardware resources to allow for arbitrarily-complex computations. We map operations to graphics hardware if possible, or to the host CPU as a last resort. This mapping is performed by compiler back-end modules associated with each computation frequency. Our system can map vertex operations to either programmable vertex hardware or to the host CPU, and can map fragment operations to either programmable fragment hardware or to multipass OpenGL. By carefully designing all the components of the system, we are able to generate highly-optimized code. We demonstrate our system running in real-time on a variety of hardware.
- 1.A. A. Apodaca and L. Gritz. Advanced RenderMan: Creating CGI for Motion Pictures. Morgan Kaufmann, 2000. Google Scholar
Digital Library
- 2.D. Banks. Illumination in Diverse Codimensions. In SIG- GRAPH 94 Conference Proceedings, pages 327-334, July 1994. Google Scholar
Digital Library
- 3.R. L. Cook. Shade Trees. In Computer Graphics (SIGGRAPH 84 Conference Proceedings), pages 223-231, July 1984. Google Scholar
Digital Library
- 4.C. Fraser and D. Hanson. A Retargetable C Compiler: Design and Implementation. Addison-Wesley, 1995. Google Scholar
Digital Library
- 5.P. Hanrahan and J. Lawson. A Language for Shading and Lighting Calculations. In Computer Graphics (SIGGRAPH 90 Conference Proceedings), pages 289-298, Aug. 1990. Google Scholar
Digital Library
- 6.W. Heidrich and H.-P. Seidel. Realistic, Hardware-accelerated Shading and Lighting. In SIGGRAPH 99 Conference Proceedings, pages 171-178, Aug. 1999. Google Scholar
Digital Library
- 7.P. Jaquays and B. Hook. Quake 3: Arena Shader Manual, Revision 10, Sept. 1999.Google Scholar
- 8.M. J. Kilgard. A Practical and Robust Bump-mapping Technique for Today's GPU's. Technical report, NVIDIA Corporation, July 2000. Available at http://www.nvidia.com/.Google Scholar
- 9.E. Lindholm. Vertex Programs for Fixed Function Pipeline. NVIDIA Technical Presentation (from www.nvidia.com), Nov. 2000.Google Scholar
- 10.E. Lindholm, M. J. Kilgard, and H. Moreton. A User- Programmable Vertex Engine. In SIGGRAPH 01 Conference Proceedings, Aug. 2001. Google Scholar
Digital Library
- 11.W. R. Mark and K. Proudfoot. Compiling To a VLIW Fragment Pipeline. In Eurographics/SIGGRAPH Workshop on Graphics Hardware, Aug. 2001. Google Scholar
Digital Library
- 12.W. R. Mark and K. Proudfoot. The F-Buffer: A Rasterization- Order FIFO Buffer for Multi-Pass Rendering. In Eurographics/SIGGRAPH Workshop on Graphics Hardware, Aug. 2001. Google Scholar
Digital Library
- 13.M. D. McCool. SMASH: A Next-Generation API for Programmable Graphics Accelerators. Technical Report CS- 2000-14, University of Waterloo, Aug. 2000.Google Scholar
- 14.Microsoft. DirectX 8.0 Programmer's Reference, Oct. 2000.Google Scholar
- 15.S. Molnar, J. Eyles, and J. Poulton. PixelFlow: High-Speed Rendering Using Image Composition. In Computer Graphics (SIGGRAPH 92 Conference Proceedings), pages 231-240, July 1992. Google Scholar
Digital Library
- 16.NVIDIA Corporation. NVIDIA OpenGL Extension Specifications, May 2001. http://www.nvidia.com/developer/.Google Scholar
- 17.M. Olano. A Programmable Pipeline for Graphics Hardware. PhD thesis, University of North Carolina at Chapel Hill, 1998. Google Scholar
Digital Library
- 18.M. Olano and A. Lastra. A Shading Language on Graphics Hardware: The PixelFlow Shading System. In SIGGRAPH 98 Conference Proceedings, pages 159-168, July 1998. Google Scholar
Digital Library
- 19.M. S. Peercy, M. Olano, J. Airey, and P. J. Ungar. Interactive Multi-Pass Programmable Shading. In SIGGRAPH 00 Con-ference Proceedings, pages 425-432, July 2000. Google Scholar
Digital Library
- 20.K. Perlin. An Image Synthesizer. In Computer Graphics (SIGGRAPH 85 Conference Proceedings), pages 287-296, July 1985. Google Scholar
Digital Library
- 21.M. Segal, K. Akeley, C. Frazier, and J. Leech. The OpenGL Graphics System: A Specification (Version 1.2), Mar. 1998.Google Scholar
- 22.X. Tu and D. Terzopoulos. Artificial Fishes: Physics, Locomotion, Perception, Behavior. In SIGGRAPH 94 Conference Proceedings, pages 43-50, July 1994. Google Scholar
Digital Library
- 23.S. Upstill. The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics. Addison-Wesley, 1990. Google Scholar
Digital Library
Index Terms
A real-time procedural shading system for programmable graphics hardware
Recommendations
Interactive multi-pass programmable shading
SIGGRAPH '00: Proceedings of the 27th annual conference on Computer graphics and interactive techniquesProgrammable shading is a common technique for production animation, but interactive programmable shading is not yet widely available. We support interactive programmable shading on virtually any 3D graphics hardware using a scene graph library on top ...
Real-time multi-perspective rendering on graphics hardware
SIGGRAPH '06: ACM SIGGRAPH 2006 SketchesMulti-perspective rendering has a variety of applications; examples include lens refraction, curved mirror reflection, caustics, as well depiction and visualization. However, multi-perspective rendering is not yet practical on polygonal graphics ...
Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments
We present a new, real-time method for rendering diffuse and glossy objects in low-frequency lighting environments that captures soft shadows, interreflections, and caustics. As a preprocess, a novel global transport simulator creates functions over the ...







Comments