Procedural shaders have become popular tools for describing surface reflectance functions and other material properties. In comparison to fixed resolution textures, they have the advantage of being resolution-independent and storage-efficient. While procedural shaders provide an interface for evaluating the shader at a single point, it is not possible to easily obtain an average value of the shader together with accurate error bounds over a finite area. Yet the ability to compute such error bounds is crucial for several interesting applications, most notably hierarchical area sampling for global illumination, using the finite element approach, and for generation of textures used in interactive computer graphics. Using affine arithmetic for evaluating the shader over a finite area yields a tight, conservative error interval for the shader function. Compilers can automatically generate code for utilizing affine arithmetic from within shaders implemented in a dedicated language such as the RenderMan shading language.
ASJC Scopus subject areas
- Computer Graphics and Computer-Aided Design