Phong Shading

  The subject of Phong shading receives careful treatment in most books
  on computer graphics, and here I will cover it only in the detail
  needed to be able to explain its use in 3D-Filmstrip.

  As mentioned in the section on color, the Phong model for shading
  surfaces (which 3D-Filmstrip uses) considers that light incident from
  a light source and reflected from a given surface patch is made up of
  two components. First there is a "diffuse" component whose intensity
  is independent of the viewing direction and is proportional to the
  cosine of the angle between the normal to the patch and the direction
  of the incoming light rays. This models quite well the effect of light
  reflected off a rough or matte surface. The intensity of the second or
  "specular" component on the other hand is strongly dependent on the
  View Direction and is meant to model the quality of shininess or
  glossiness of a polished surface. If the diffuse component
  predominates too strongly then the surface may seem flat and lifeless,
  while if the specular component is too strong then the surface may
  seem metallic and shiny with concentrated "hotspots". A good balance
  between the two can give a pleasantly realistic effect that enhances
  the three-dimensional qualities of the representation. We have
  discussed above the way that the diffuse component is computed, and we
  consider here only how to compute the intensity of the specular
  component---and how to to combine the intensities of the two
  components.

  Suppose the light from a point source is travelling in a certain
  direction v. The "Law of Reflection" (the angle of incidence equals
  the angle of reflection) determines a certain direction w for the rays
  reflected off the surface patch. If the surface were a perfect
  reflector, then the light reflected from the source would have a
  maximum intensity I when viewed from a point in the direction w as
  seen from the patch, and zero from any other direction. Let P be a
  viewpoint, and let A be the angle between the direction w and the
  direction from the patch to P. Then the intensity of the light from
  the source as seen at P is I f(cos(A)), where f(1)=1 and f(t)=0 for t
  < 1. The function cos^n(A) approximates f(cos(A)) well when n is
  large, and I cos^n(A) is taken as the law of reflection for an
  imperfect reflector in the Phong model. We call the choice of n the
  "Specular Exponent". Clearly if n is small then highlights will be
  spread out and diffuse, while if n is large then highlights will be
  almost pointlike.

  Let's assume that if all the light were diffusely reflected the
  intensity would be I_d while if all the light were reflected
  specularly then the intensity would be I_s. How should we combine
  these to find a total intensity I? A first guess is to assume that a
  certain fraction r (called the "Specular Ratio") of the incident light
  is reflected specularly and the rest is reflected diffusely. This
  leads to the addition formula (1-r) I_d + r I_s, and this was the
  original formula that I used. However I was a little dissatisfied with
  the results and after some playing around I settled on the formula
  (1-k r) I_d + r I_s where k seemed best at around 0.6.
    _________________________________________________________________

  Documentation Table Of Contents.
  Documentation Index.