Diffuse reflection is uniform reflection of light with no directional dependence for the viewer, e.g., a matte surface such as cardboard. Diffuse reflection originates from a combination of internal scattering of light, i.e. the light is absorbed and then re-emitted, and external scattering from the rough surface of the object. An illumination model must handle both direct diffuse reflection, i.e., light coming directly from a source to a surface and then reflected to the viewer, and indirect diffuse reflection (or diffuse interreflections), that is light coming from a source, being reflected to a surface, then reflected to another surface, etc, and finally to the viewer.
Some local illumination models, such as those that are usually used in many scan-line rendering and ray tracing systems, handle the diffuse interreflection contribution by simply assuming it has uniform intensity in all directions. This constant term is called the "ambient" contribution and it is considered a non-directional background light. Radiosity explicitly computes the diffuse interreflection term.
If we assume a uniform intensity of ambient light, Ia, then the intensity of the diffuse reflection at any point on the surface: I = ka * Ia, where ka = the ambient diffuse coefficient of reflection with: 0.0 <= ka <= 1.0. For colored surfaces there are three ka values, one for red, green, and blue. We are approximating the ambient diffuse part of the reflection intensity function R(j,q,l) by the constant ka. For a dull, non-reflecting surface ka is close to 0.0 and for a highly reflective surface, such as a mirror, ka is close to 1.0.
Consider a point source and assume the source is far from the surface so that incident light rays are parallel. Note: if the light source is near the surface then the light rays are not parallel as below:
For a point light far from the surface, we use Lambert's cosine law which is as follows: the intensity of reflected light is f( angle of illumination). This can be qualitatively seen if we look at the two cases below:
Define N = the unit normal to the surface and L = the unit vector which is the direction to the light source
Then Lambert's law states that the reflected light is proportional to cos q (with q <= 90 else the light is behind the surface). Let Ip="intensity" of point light source, then the brightness is f(1/d2) where d="distance" of light source from the surface. Some models use a d distance dependence rather than d2, and since most light sources are not really point sources, this works. Some models define a "distant" light source, such as the sun, which have no distance dependence. Here is more information on lights in computer graphics.
Then I = [(kd * Ip) / (D)] * (NĚL) with D = the distance function (< = 1 for a distant light source, d or d2 for other models and kd = the diffuse coefficient of reflection with: 0.0 <= kd <= 1.0. For colored surfaces there are three kd values, one for red, green, and blue. Some models also add a constant term do to prevent d the denominator from going to zero. Frequently ka is set to be the same as kd. Note that the vectors N and L are always normalized.
Then including ambient light we get a simple two term illumination model:
I = ka * Ia + [(kd * Ip) / (d)] * (NĚL)
If we consider color then we should have an explicit wavelength dependence. But we usually make the approximation of sampling the color space at only three colors, i.e., "red", "green", and "blue", without really defining what wavelengths these are. Then we will have 3 equations like the above: one for Red, Green, and Blue. For example, a blue surface might have kdR = kdG = 0, KdB = 0.8. Note that the intensity, I, should always have a value between 0.0 and 1.0. It may be necessary to clamp the computed values so that they remain in the valid range.
Go to Local Illumination Model main page.
Go to HyperGraph home page.