Also named after its inventor, Phong Biu-Tuong, who published a paper on this
technique in 1975. This technique uses shading normals, which are different
from geometric normals (see the diagram). Phong shading uses these shading normals,
which are stored at each vertex, to interpolate the shading normal at each pixel
in the triangle (RTR, p. 68). Recall that a normal defines a vector (which has
direction and magnitude (length), but not location). But unlike a surface normal
that is perpendicular to a triangle's surface, a shading normal (also called
a vertex normal) actually is an average of the surface normals of its surrounding
triangles. Phong shading essentially performs Gouraud lighting at each pixel
(instead of at just the three vertices). And similar to the Gouraud shading
method of interpolating, Phong shading first interpolates normals along triangle
edges, and then interpolates normals across all pixels in a scan line based
on the interpolated edge values.
click on image for full view
More recently, another per-pixel lighting model has come onto the scene using a technique called dot product texture blending, or DOT3, which debuted in the DirectX 6 version of Direct3D. A prelude to programmable shaders, this technique gains the benefit of higher resolution per-pixel lighting without introducing the overhead of interpolating across an entire triangle. This approach is somewhat similar to Phong shading, but rather than calculating interpolated shading normals for every pixel on the fly, DOT3 instead uses a normal map that contains "canned" per-pixel normal information. Think of a normal map as a kind of texture map. Using this normal map, the renderer can do a lookup of the normals to then calculate the lighting value per pixel.
Once the lighting value has been calculated, it is recombined with the original texel color value using a modulate (multiply) operation to produce the final lit, colored, textured pixel. Essentially, DOT3 combines the efficiencies of light maps, wherein you gain an advantage having expensive-to-calculate information (in the case of DOT3 per-pixel normals) "pre-baked" into a normal map rather than having to calculate them on the fly, with the more realistic lighting effect of Phong shading. the per pixel interpolators are used to interpolate the Phong normals across the triangle and DOT3 operations and texture lookups are used to compute the Phong lighting equation at each pixel.
In the Phong method, vector interpolation replaces intensity interpolation.
Graphic courtesy of Watt, p.137