Since i first started working with specularity in CG, I have been using the Phong model. I like Phong. It’s simple, holds up well at grazing angles, and has generally predictable effects. It does have some known disadvantages though, one of which is the shape of the specular falloff at high angles of incidence. Basically phong remains blobby where we would want it to stretch out toward the viewer.Blinn-Phong addresses this by constructing a halfway vector between light and view direction and retrieving the dot product of the halfway vector and the normals, in place of Phong’s dot product of the reflection vector and light vector. This handy illustration shows the effect, with Blinn-Phong specularity on the left and Phong specularity on the right.

It does come with a few of its own issues, notably at grazing angles where is seems to form a singularity rather than going stretchy like Phong. This might be worth investigating further in the future.

Maya CGFX File:

blinnphong.cgfx
File Size: 6 kb
File Type: cgfx

Download File


Unity SHADER File:

blinnphong.shader
File Size: 9 kb
File Type: shader

Download File


Leave a Reply

Your email address will not be published. Required fields are marked *