Horizon mapping: shadows for bump-mapped surfaces

Bump mapping produces realistic shading by perturbing normal vectors to a surface, but does not show the shadows that the bumps cast on nearby parts of the same surface. In this paper, these shadows are found from precomputed tables of horizon angles, listing, for each position entry, the elevation of the horizon in a sampled collection of directions. These tables are made for bumps on a standard flat surface, and then a transformation is developed so that the same tables can be used for an arbitrary curved parametrized surface patch. This necessitates a new method for scaling the bump size to the patch size. Incremental calculations can be used in a scan line algorithm for polygonal surface approximations. The errors in the bump shadows are discussed, as well as their anti-aliasing. (An earlier version of this article appeared as Max [10].)