An illumination model developed by Bui-Tong Phong in 1975 and still very popular. In particular, it is designed to model specular reflection.

A purely specular surface (like a really good mirror -- this should come as no surprise, since specular derives from the latin for "mirror" -- speculum) abides by the law of reflection: the angle of incidence equals the angle of reflection. Now, imagine that you have a point light source. The only way that you'd be able to see the light source is if the light source is reflected directly into your eye.

But real surfaces don't work like that. They "blur" a little. Sure, you get most of the light reflected along the angle of reflection, but say you're 3 degrees from the angle of reflection, then you still get some intensity.

How can you model this? Well, the intensity depends on the vector from the surface of interest to your eye -- this is V, and it depends on the reflected ray R. In particular it depends on the angle between them.

Modelling it properly is one thing (a-la the Cook-Torrance model), but we're looking for something that can be implemented efficiently. So what do you do? Answer: you hack a solution.

The Phong illumination equation is:

I = Il ks(V.R)n

V.R is the dot product of the vector to the viewer and the reflected ray. Really, though, this is a way of computing the cosine of the angle between them. Il is the intensity of the light source. ks is the coefficient of specular reflection ... how much of the specular light is reflected. n is the Phong exponent.

How does the equation work? Well, the bigger the exponent, the more "concentrated" the specular highlight. So a perfect mirror would have an exponent of infinity (in this case, 100 is close enough), but say, a shiny apple might have an exponent of 20.

There's no good physics reason why this should be the case, it's just a purely empirical hack. Graphics gurus like Jim Blinn get annoyed by it, but it kind of works, so people use it.

Log in or register to write something here or to contact authors.