In both rendering and interactive computer graphics, substantial effort has been devoted to the modeling of reflected and refracted light. This is not surprising - almost all the light perceived in the world is reflected. This section describes several ways to create the effects of reflection and refraction using OpenGL beginning with a very brief review of the relevant physics. Pointers to more detailed descriptions are provided.
From elementary physics, the angle of reflection of a ray is equal to the angle of incidence of the ray (Figure 52). This property is known as the Law of Reflection . The reflected ray lies in the plane defined by the incident ray and the surface normal.
Refraction is defined as the ``change in the direction of travel as light passes from one medium to another'' . This change in direction is caused by the difference in the speed of light traveling through the two media. The refractivity of a material is characterized by the index of refraction of the material, or the ratio of the speed of light in the material to the speed of light in a vacuum .
The direction of a light ray after it passes from one medium to
another is computed from the direction of the incident ray, the normal
of the surface at the intersection of the incident ray, and the indices
of refraction of the two materials. The behavior is shown in Figure
52. The first medium through which the ray passes has
an index of refraction n1 and the second has an index of
refraction n2. The angle of incidence,
is the angle
between the incident ray and the surface normal. The refracted ray
forms the angle
with the normal. The incident and
refracted rays are coplanar. The relationship between the angle of
incidence and the angle of refraction is stated as Snell's
When a ray hits a surface, some light is reflected off the surface and some is transmitted. The weighting of the transmitted and reflected light is determined by the Fresnel equations.
More details about reflection and refraction can be gleaned from most college physics books. For more details on the reflection and transmission of light from a computer graphics perspective, consult one of several general computer graphics books or books on radiosity or ray tracing , , .