“Interactive multi-pass programmable shading” by Peercy, Olano, Airey and Ungar

  • ©Mark Peercy, Marc Olano, John Airey, and Jeffrey P. Ungar




    Interactive multi-pass programmable shading



    Programmable 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 of OpenGL. We treat the OpenGL architecture as a general SIMD computer, and translate the high-level shading description into OpenGL rendering passes. While our system uses OpenGL, the techniques described are applicable to any retained mode interface with appropriate extension mechanisms and hardware API with provisions for recirculating data through the graphics pipeline.
    We present two demonstrations of the method. The first is a constrained shading language that runs on graphics hardware supporting OpenGL 1.2 with a subset of the ARB imaging extensions. We remove the shading language constraints by minimally extending OpenGL. The key extensions are color range (supporting extended range and precision data types) and pixel texture (using framebuffer values as indices into texture maps). Our second demonstration is a renderer supporting the RenderMan Interface and RenderMan Shading Language on a software implementation of this extended OpenGL. For both languages, our compiler technology can take advantage of extensions and performance characteristics unique to any particular graphics hardware.


    1. BIRCH, P., BLYTHE, D., GRANTHAM, B., JONES. M., SCHAFER, M. SE- GAL, M., AND TANNER, C. An OpenGL++ Specification. SGI, March i997.
    2. BLYTHE, D., GRANTHAM, B., KILGARD, M. J., MCREYNOLDS, T., NEL- SON, S. R., FOWLER, C., HUI, S., AND WOMACK, P. Advanced graphics programming techniques using OpenGL: Course notes. In Proceedings of SIGGRAPH ’99 (July 1999).
    3. BOCK, D. Tech watch: Volume rendering. Computer Graphics Worm 22, 5 (May 1999).
    4. BRIGGS, P. Register Allocation via Graph Coloring. PhD thesis, Rice University, April 1992.
    5. CABRAL, B., CAM, N., AND FORAN, J. Accelerated volume rendering and tomographic reconstruction using texture mapping hardware. 1994 Symposium on Volume Visualization (October 1994), 91-98. ISBN 0-89791-741-3.
    6. CABRAL, B., OLANO, M., AND NEMEC, P. Reflection space image based rendering. Proceedings of SIGGRAPH 99 (August 1999), 165-170.
    7. COOK, R. L. Shade trees. Computer Graphics (Proceedings of SIGGRAPH 84) 18, 3 (July 1984), 223-231. Held in Minneapolis, Minnesota.
    8. CORRIE, B., AND MACKERRAS, P. Data shaders. Visualization ’93 1993 (1993).
    9. CRAWFIS, R. A., AND ALLISON, M. J. A scientific visualization synthesizer. Visualization ’91 (1991), 262-267.
    10. DIEFENBACH, P. J., AND BADLER, N. I. Multi-pass pipeline rendering: Realism for dynamic environments. 1997 Symposium on Interactive 3D Graphics (April 1997), 59-70.
    11. FRASER, C. W., HANSON, D. R., AND PROEBSTING, T. A. Engineering a simple, efficient code generator generator. ACM Letters on Programming Languages and Systems 1, 3 (September 1992), 213-226.
    12. GRITZ, L., AND HAHN, J. K. BMRT: A global illumination implementation of the RenderMan standard. Journal of Graphics Tools 1, 3 (1996), 29-47.
    13. HAEBERLI, P. E., AND AKELEY, K. The accumulation buffer: Hardware support for high-quality rendering. Computer Graphics (Proceedings of SIG- GRAPH 90) 24, 4 (August 1990), 309-318.
    14. HANRAHAN, P., AND LAWSON, J. A language for shading and lighting calculations. Computer Graphics (Proceedings of SIGGRAPH 90) 24, 4 (August 1990), 289-298.
    15. HARRIS, M. Extending microcode compaction for real architectures. In Proceedings of the 20th annual workshop on Microprogramming (1987), pp. 40- 53.
    16. HART, J. C., CARR, N., KAMEYA, M., TIBBITTS, S. A., AND COLEMAN, T. J. Antialiased parameterized solid texturing simplified for consumer-level hardware implementation. 1999 SIGGRAPH / Eurographics Workshop on Graphics Hardware (August 1999), 45-53.
    17. HEIDRICH, W., AND SEIDEL, H.-P. Realistic, hardware-accelerated shading and lighting. Proceedings of SIGGRAPH 99 (August 1999), 171-178.
    18. HEIDRICH, W., WESTERMANN, R., SEIDEL, H.-P., AND ERTL, T. Applications of pixel textures in visualization and realistic image synthesis. 1999 ACM Symposium on Interactive 3D Graphics (April 1999), 127-134. ISBN 1-58113-082-1.
    19. JAQUAYS, P., AND HOOK, B. Quake 3: Arena shader manual, revision 10. In Game Developer ‘S Conference Hardcore Technical Seminar Notes (December 1999), C. Hecker and J. Lander, Eds., Miller Freeman Game Group.
    20. KAUTZ, J., AND McCOOL, M. D. Interactive rendering with arbitrary brdfs using separable approximations. Eurographics Rendering Workshop 1999 (June 1999). Held in Granada, Spain.
    21. KELLER, A. Instant radiosity. Proceedings of SIGGRAPH97 (August 1997), 49-56.
    22. KYLANDER, K., AND KYLANDER, O. S. Gimp: The Official Handbook. The Coriolis Group, 1999.
    23. MAX, N., DEUSSEN, O., AND KEATING, B. Hierarchical image-based rendering using texture mapping hardware. Rendering Techniques ’99 (Proceedings of the lOth Eurographics Workshop on Rendering) (June 1999), 57-62.
    24. McCOOL, M. D. AND HEIDRICH, W. Texture shaders. 1999 SIGGRAPH/ Eurographics Workshop on Graphics Hardware (August 1999), 117-126.
    25. OLANO, M., HART, J. C., HEIDRICH, W., MCCOOL, M., MARK, B., AND PROUDFOOT, K. Approaches for procedural shading on graphics hardware: Course notes. In Proceedings of SIGGRAPH 2000 (July 2000).
    26. OLANO, M., AND LASTRA, A. A shading language on graphics hardware: The PixelFlow shading system. Proceedings of SIGGRAPH 98 (July 1998), 159-168.
    27. OPENGL ARB. Extension specification documents, http://www.opengl.org- /Documentation/Extensions.html, March 1999.
    28. PIXAR. The RenderMan Inte~ace Specification: Version 3.1. Pixar Animation Studios, September 1999.
    29. SEGAL, M., AKELEY, K., FRAZIER, C., AND LEECH, J. The OpenGL Graphics System: A Specification (Version 1.2.1). Silicon Graphics, Inc., 1999.
    30. SGI TECHNICAL PUBLICATIONS. Cosmo 3D Programmer’s Guide. SGI Technical Publications, 1998.
    31. SIMS, K. Particle animation and rendering using data parallel computation. Computer Graphics (Proceedings of SIGGRAPH 90) 24, 4 (August 1990), 405-413.
    32. UPSTILL, S. The RenderMan Companion. Addison-Wesley, 1989.

ACM Digital Library Publication: