next up previous
Next: Bump Mapping Up: Results Previous: Normalization

Precision

Computations in the register combiners are performed in 8 bit (+ 1 sign bit) fixed point, this results in precision and dynamic range problems as shown in Figure 10. In order to isolate precision problems from interpolation and normalization issues the used sphere model is highly tesselated.

Figure 10: Comparison of Precision Problems
\includegraphics[width=14cm]{D:/Studium/Per-Pixel-Lighting/text_cescg/image/banding.eps}
In the shader with register combiner normalization, the exponentiation is computed by repeated self multiplication, for higher specular exponents this results in visible banding. The shader with table lookup performs much better. In this shader the result of a high precision dot product between $ \vec{N}$ and $ \vec{H}$ is used to access a texture where the specular intensity is stored. These values are stored as 8 bit values, but through the use of linear interpolation between the table values the quality is very good. The standard Gouraud shader is used only for reference purpose as no per-pixel shading takes place. It should be noted, that in the inner zone of the highlight the Gouraud shader performs still better than the texture shader, because the exponentiation function gets very steep near one and there are too few values in the table to interpolate perfectly [6].


next up previous
Next: Bump Mapping Up: Results Previous: Normalization
Gerald Schröcker 2002-03-21