WG211/M8Hack

From WG 2.11
Jump to: navigation, search


AnySL: Efficient and Portable Multi-Language Shading

Sebastian Hack

In graphics, shaders have become a key part of 3D scene descriptions -- especially since programmable GPUs also made them available for realtime graphics. While a number of different shading languages have been developed, none of them is broadly supported across the variety of rendering systems, making it hard, if not impossible, to create portable scene descriptions.

AnySL attacks the issue from multiple directions: We compile shaders from different languages into a common, portable representation, which uses subroutine threaded code consisting of calls to a virtual shader interpreter. We further simplify the implementation of this virtual interpreter for a specific renderer by providing a generic shading library that implements common shading functionality in terms of abstract data types.