Calle Lejdfors
Dept. of Computer Science, Lund University, Sweden
Lennart Ohlsson
Dept. of Computer Science, Lund University, Sweden
Download articlePublished in: The Annual SIGRAD Conference. Special Theme - Environmental Visualization
Linköping Electronic Conference Proceedings 13:6, p. 17-24
Published: 2004-11-24
ISBN:
ISSN: 1650-3686 (print), 1650-3740 (online)
The programmability of modern graphics processing units (GPUs) provide great exibility for creating a wide range of advanced effects for interactive graphics. Developing such effects requires writing not only shader code to be executed by the GPU but also supporting code in the application where the effect is to be used. This support code creates dependencies between effects and the applications that use them; making it harder to evolve applications and to reuse effects. Existing effect frameworks; such as DirectX Effects and CgFX; can only provide partial encapsulation because they consider effects as passive data structures. In this paper we present an effect framework written in an ordinary scripting language where effects are active entities. This makes it possible to completely encapsulate both shaders and support code thereby minimizing the dependencies to the application.
3D LABS. 2002. OpenGL 2.0 Shading Language White Paper; 1.2 ed.; February.
CgFX 1.2 Overview.https://developer.nvidia.com
COOK; R. L. 1984. Shade trees. In Proceedings of the 11th annual conference on Computer graphics and interactive techniques; ACM Press; 223-?231.
DirectX SDK Documentation .http://mdm.microsoft.com/
.
ELLIOTT; C. 2004. Programming graphics processors functionally. In Proceedings of the ACM SIGPLAN workshop on Haskell; ACM Press; 45-?56.
GAMMA; E.; HELM; R.; JOHNSON; R.; AND VLISSIDES; J. 1994. Design Patterns. Addison-Wesley.
GRAY; K. 2003. DirectX 9 programmable graphics pipeline. Microsoft Press.
HANRAHAN; P.; AND LAWSON; J. 1990. A language for shading and lighting calculations. In Proceedings of the 17th annual conference on Computer graphics and interactive techniques; ACM Press; 289-?298.
Hemispheric lighting. Example in DirectX 9 SDK documentation. MSDN Library;http://mdm.microsoft.com
JAQUAYS; P.; AND HOOK; B. 1999. Quake III Arena Shader Manual; 12 ed. Id Software Inc.; December.
LEJDFORS; C.; AND OHLSSON; L. 2004. Tools for real-time effect programming. Submitted to publication.
MARK; W. R.; GLANVILLE; R. S.; AKELEY; K.; AND KILGARD; M. J. 2003. Cg: a system for programming graphics hardware in a c-like language. ACM Trans. Graph. 22; 3; 896-?907.
MCCOOL; M.; QIN; Z.; AND POPA; T. 2002. Shader metaprogramming. In Graphics Hardware; T. Ertl; W. Heidrich; and M. Doggett; Eds.; 1?12.
MCCOOL; M.; TOIT; S. D.; POPA; T. S.; CHAN; B.; AND MOULE; K. 2004. Shader algebra. In To appear at SIGGRAPH 2004; 9 pages.
MOLNAR; S.; EYLES; J.; AND POULTON; J. 1992. Pixel-low: high-speed rendering using image composition. In Proceedings of the 19th annual conference on Computer graphics and interactive techniques; ACM Press; 231-?240.
OLANO; M.; AND LASTRA; A. 1998. A shading language on graphics hardware: thepixel-low shading system. In Proceedings of the 25th annual conference on Computer graphics and interactive techniques; ACM Press; 159-?168.
PEERCY;M. S.; OLANO; M.; AIREY; J.; AND UNGAR; P. J. 2000. Interactive multi-pass programmable shading. In Proceedings of the 27th annual conference on Computer graphics and interactivetechniques; ACM Press/Addison-Wesley Publishing Co.; 425-?432.
PERLIN; K. 1985. An image synthesizer. In Proceedings of the 12th annual conference on Computer graphics and interactive techniques; ACM Press; 287-?296.
PROUDFOOT; K.; MARK; W. R.; TZVETKOV; S.; AND HANRAHAN; P. 2001. A real-time procedural shading system for programmable graphics hardware. In Proceedings of the 28th annual conference on Computer graphics and interactive techniques; ACM Press; 159-?170.
PyOpenGL project.http://pyopengl.sf.net
SWIG project. http://www.swig.org