Phong Shading Model for Scan-Line Graphics

The third shading model, Phong shading, is similar to Gouraud shading except that the Normals are interpolated. Thus, the specular highlights are computed much more precisely than in the Gouraud shading model.

The algorithm is as follows:

  1. Compute a normal N for each vertex of the polygon.
  2. From bi-linear interpolation compute a normal, Ni for each pixel. (This must be renormalized each time)
  3. From Ni compute an intensity Ii for each pixel of the polygon.
  4. Paint pixel to shade corresponding to Ii.

Note that this method is much more computationally intensive than Gouraud shading:

Gouraud: 3 floating point adds per pixel (3 intensities).

Phong: 3 fp adds (normal) + (3 squares + sqrt for normal) + (recompute intensity - 3 * (about 10-20 fp multiplies depending on degree of approximation).

So may do Phong shading only when want good specular highlights.

A Pixar Shutterbug example image with Phong shading and specular highlights.

Shading models
HyperGraph home page.

Last changed March 13, 1999, G. Scott Owen,