z-logo
Premium
shade.js: Adaptive Material Descriptions
Author(s) -
Sons Kristian,
Klein Felix,
Sutter Jan,
Slusallek Philipp
Publication year - 2014
Publication title -
computer graphics forum
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.578
H-Index - 120
eISSN - 1467-8659
pISSN - 0167-7055
DOI - 10.1111/cgf.12473
Subject(s) - computer science , rendering (computer graphics) , shader , compiler , global illumination , software rendering , computer graphics (images) , programming language , graphics , metaprogramming , exploit , 3d computer graphics , computer security
In computer graphics a material is a visual concept that is parameterizable and should work for arbitrary 3D assets and rendering systems. Since provided parameters and attributes as well as the capabilities of rendering systems vary considerably, a material needs to adapt to its execution environment. In current approaches, the adaptation logic is ‘baked’ into the rendering application based on string manipulation, compiler directives, or metaprogramming facilities. However, in order to achieve application‐independent and self‐contained material descriptions, the adaptation logic needs to be part of the material description itself. In this paper we present shade.js, a novel material description using a dynamic language to achieve the necessary adaptivity. A shader can inspect its execution environment and adapt to the available parameters and renderer capabilities at run time. Additionally, shade.js exploits the polymorphism that comes with non‐explicit declaration of types. These two novel features allow for writing adaptable and thus more general material descriptions. Based on the concrete execution environment at run time, the accompanied compiler generates specialized shader code that is specifically typed and optimized for the target rendering system and algorithm. We evaluate shade.js with examples targeting four different rendering approaches (forward and deferred rasterization, ray‐tracing, and global illumination). We show that we can improve convenience and flexibility for specifying materials without sacrificing performance.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here