OpenGL Lights
OpenGL can assign many more attributes to lights than just their color. Lights
can be defined with a position, a direction, and even a cone of illumination etc.
The most commonly used types of lights in OpenGL are
Distant (directional) light
Point light
Spotlight