1. A computer program product for determining threat intervisibility, comprising: software instructions for enabling the computer to perform predetermined operations; and a computer readable medium bearing the software instructions; the predetermined operations including the steps of: receiving a terrain elevation database comprising a plurality of data points, wherein each data point corresponds to a geographic location, wherein adjacent geographic locations are uniformly spaced in each of a first direction and a second direction perpendicular to said first direction, and wherein each data point represents a terrain elevation of the geographic location corresponding to the data point; creating an umbra database comprising umbra database cells, wherein each umbra database cell corresponds to a terrain elevation database data point; receiving a threat location and a threat range capability for one or more threats within an area of terrain covered by the terrain elevation database; determining a line of sight vector to compute for the threat; initializing cell coordinate variables X and Y to cell coordinates representing the threat location; initializing a distance variable and a step count variable; calculating an initial umbra value, wherein the initial umbra value is calculated as the elevation of the ground at the threat location and stored in the umbra database in the umbra database cell corresponding to the threat location; incrementing the cell coordinate variables X and Y to reference a next cell on the line of sight vector; incrementing the distance variable by a distance represented by each step along the first line of sight vector; incrementing the step count variable; calculating a change in elevation value at a second step along a line of sight vector being processed and storing said change in elevation value, wherein the change in elevation value is calculated as the difference between a current terrain elevation value and the threat elevation, divided by a value of the step count variable; calculating a predicted umbra value by summing the change in elevation value with a preceding umbra value; if the predicted umbra value is at or above the current terrain elevation value, then storing the predicted umbra value in the umbra database, otherwise, recomputing the change in elevation factor by subtracting the initial elevation value from the current terrain elevation value and dividing the resulting difference by the step count and storing the current terrain elevation value in the umbra database; if the distance variable value is equal to or greater than the threat range capability of the threat being processed, ending processing for the line of sight vector, otherwise, continuing processing of the line of sight vector by repeating the steps of incrementing the cell coordinate variables X and Y, incrementing the distance variable, incrementing the step count variable, calculating a change in elevation value, calculating a predicted umbra value; and if the line of sight vector processing is complete and the threat processing is complete, then ending intervisibility processing.