Sampling Procedural Shaders Using Affine Arithmetic



Procedural shaders have become popular tools for describ-
ing surface reflectance functions and other material properties. In com-
parison to fixed resolution textures, they have the advantage of being
resolution independent and storage effcient.
While procedural shaders provide an interface for evaluating the shader
at a single point, it is not easily possible to 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 illumina-
tion using the finite element approach, and for the generation of textures
used in interactive computer graphics.
Using affine arithmetic for evaluating the shader over a nite 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.