Before we continue, it's worth remembering, as far as shadow computations are concerned, that OpenGL supports two types of lights:
A positional light source (also called a point source) is located at a particular point and light rays from it travel radially outward and so are all traveling in different directions.
In contrast, a directional light source is assumed to be located far enough from the scene so that all of its rays are parallel to one another.