Abstract Shade Trees


M. McGuire; G. Stathis; H. Pfister; S. Krishnamurthi


As GPU-powered special effects in games become more sophisticated, it becomes harder to create and manage effect interaction using the fairly primitive GPU shading languages. This difficulty also introduces a workflow problem: artists design effects, but only programmers can implement and interface the main renderer with them. This paper borrows current ideas from the programming language community to improve the shader authoring process. We introduce abstract shade trees for compactly expressing shaders. We implemented a visual programming front-end tool for creating such trees and a back-end tool called a weaver that transforms them into executable OpenGL Shading Language source code. Like previous visual tools for shader programming, ours represents core operations called atoms as tree nodes. Unlike previous tools, it abstracts the parameter connections between atoms. This dramatically simplifies the user's view of the tree and ensures that users cannot create a shader with type errors. Because the specific connections are abstract, our tools allow special effect creators (artists) and atom creators (programmers) to develop and modify their products independent of each other for efficient workflow. We further abstract shader authoring with controls for visualizing and manipulating whole features like shadows and bump-mapping. The potentially interleaved and overlapping nodes of a feature are encircled in the front-end tool to show their cross-cutting relationship to the rest of the tree.

BibTex entry

@conference { 61, title = {Abstract Shade Trees}, year = {2006}, month = {10/2006}, pages = {79-86}, author = {M. McGuire and G. Stathis and H. Pfister and S. Krishnamurthi} }