I3D 2006 Abstract. As GPU-powered special effects become more sophisticated, it becomes harder to create and manage effect interaction using the fairly primitive shading languages. This difficulty also introduces a workflow problem: artists design effects but only programmers can implement them, making it impossible for them to work asynchronously.
![]()
Abstract Shade Trees Morgan McGuire, George Stathis (Harvard Extension School), Hanspeter Pfister (MERL), and Shriram Krishnamurthi (Brown)
[PDF] [Talk PPT] [Images] [Bibtex] [Movie [7 MB]] [Discussion]
To address these problems we present abstract shade trees and heuristic algorithms that operate over them. The trees allow designers to easily create effects by connecting primitives such as cube mapping and modulation. These primitives publish semantically rich types that encapsulate notions like vector basis and normalization. The algorithms employ these published types to automatically infer atomic and compound connectors between the primitives, and generate code for the tree. We also describe a visual editing environment for specifying the trees.
Our data structure and algorithms spare designers from having to specify low-level programming details, enabling them to experiment without depending on programmers. The algorithms ensure that the generated code will be free of type-mismatches, a problem in previous shade trees. The abstract shade tree can also naturally express high-level features like shadows and reflections whose implementations overlap; that cross-cutting has made them difficult to modularize in more traditional ways.
In experiments, the generated shaders are as efficient as hand-written code.
Some images from this project
Here's interesting related work that occured since our paper was published, or that we didn't have space to review for I3D.
- McGuire 2005: The SuperShader in ShaderX4 demonstrates the state of the art for the Ueber-shader idea, combining the material effects used in next-generation games.
- Hargreaves 2004: HLSL Fragments in ShaderX3 describes a visual shade tree editor and linker for HLSL that was used in MotoGP for XBox.
- Unreal 2003: We mention the Unreal editor in our paper; here is a picture of it
- Pellacini and Vidimce 2004: Cinematic Lighting in GPU Gems introduces another real-time port of Uberlight, this time to Cg.
- ATI 2003: ATI demonstrated a HLSL port of Uberlight at SIGGRAPH.
- Gritz 1998: Barzel 1997: Lighting Controls for Computer Cinematography in jgt introduced the set of useful lighting controls later used by Gritz.
@inproceedings{mcguire2006shadetrees, author = {Morgan McGuire and George Stathis and Hanspeter Pfister and Shriram Krishnamurthi}, title = {Abstract Shade Trees (preprint)}, booktitle = {Symposium on Interactive 3D Graphics and Games}, month = {March}, year = {2006}, location = {Redwood City, CA}, url = {http://www.cs.brown.edu/research/graphics/games/AbstractShadeTrees/index.html}, }