Viewshed is extremely fast. On a 75 MHz Pentium, recomputing the viewshed for a 300x300 terrain takes under 0.5 CPU second. Indeed, on some platforms, the visibility computation is faster than the frame buffer updating. Also, an exact computation is not justified given the inexact input. Our philosophy is good enough accuracy.
Elevation is indicated by color.
There is a color scale along the right side. The observer was located at the highest point in the terrain, and about 15 meters above ground level. We do not find each point's explicit viewshed, but rather use sampling techniques to estimate its area. For each observer, perhaps 32 rays are fired out at equally spaced angles towards the edge of the terrain. The visibility index of the observer is the fraction of tested points that are visible.