LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
A language for shading and lighting calculations
SIGGRAPH '90 Proceedings of the 17th annual conference on Computer graphics and interactive techniques
SIGGRAPH '85 Proceedings of the 12th annual conference on Computer graphics and interactive techniques
A relational model of data for large shared data banks
Communications of the ACM
A real-time procedural shading system for programmable graphics hardware
Proceedings of the 28th annual conference on Computer graphics and interactive techniques
Shader-driven compilation of rendering assets
Proceedings of the 29th annual conference on Computer graphics and interactive techniques
Proceedings of the ACM SIGGRAPH/EUROGRAPHICS conference on Graphics hardware
SIGGRAPH '84 Proceedings of the 11th annual conference on Computer graphics and interactive techniques
Cg: a system for programming graphics hardware in a C-like language
ACM SIGGRAPH 2003 Papers
Illumination for computer-generated images.
Illumination for computer-generated images.
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
ACM SIGGRAPH 2006 Papers
GRAMPS: A programming model for graphics pipelines
ACM Transactions on Graphics (TOG)
Approximating subdivision surfaces with Gregory patches for hardware tessellation
ACM SIGGRAPH Asia 2009 papers
A Framework for Object-Oriented Shader Design
ISVC '09 Proceedings of the 5th International Symposium on Advances in Visual Computing: Part I
Hi-index | 0.00 |
In creating complex real-time shaders, programmers should be able to decompose code into independent, localized modules of their choosing. Current real-time shading languages, however, enforce a fixed decomposition into per-pipeline-stage procedures. Program concerns at other scales -- including those that cross-cut multiple pipeline stages -- cannot be expressed as reusable modules. We present a shading language, Spark, and its implementation for modern graphics hardware that improves support for separation of concerns into modules. A Spark shader class can encapsulate code that maps to more than one pipeline stage, and can be extended and composed using object-oriented inheritance. In our tests, shaders written in Spark achieve performance within 2% of HLSL.