The ambient component is the light from that source that's been scattered so
much by the environment that its direction is impossible to determine - it
seems to come from all directions. Backlighting in a room has a large ambient
component, since most of the light that reaches your eye has bounced off many
surfaces first. A spotlight outdoors has a tiny ambient component; most of the
light travels in the same direction, and since you're outdoors, very little of
the light reaches your eye after bouncing off other objects. When ambient light
strikes a surface, it's scattered equally in all directions.
Diffuse light comes from one direction, so it's brighter if it comes
squarely down on a surface than if it barely glances off the surface. Once it
hits a surface, however, it's scattered equally in all directions, so it
appears equally bright, no matter where the eye is located. Any light coming
from a particular position or direction probably has a diffuse component.
Finally, specular light comes from a particular direction, and it tends to bounce off the surface in a preferred direction. A well-collimated laser beam bouncing off a high-quality mirror produces almost 100 percent specular reflection. Shiny metal or plastic has a high specular component, and chalk or carpet has almost none. You can think of specularity as shininess.
Although a light source delivers a single distribution of frequencies, the
ambient, diffuse, and specular components might be different.
OpenGL allows
you to set the red, green, and blue values for each component
of light
independently.