Blinn-Phong shading

Figure 7.3: In the Blinn-Phong shading model, the light reaching the pixel depends on the angle between the normal $ n$ and the bisector $ b$ of the $ \ell $ and $ v$. If $ n = b$, then ideal reflection is obtained, as in the case of a mirror.

Now suppose that the object is ``shiny''. If it were a perfect mirror, then all of the light from the source would be reflected to the pixel only if they are perfectly aligned; otherwise, no light would reflect at all. Such full reflection would occur if $ v$ and $ \ell $ form the same angle with respect to $ n$. What if the two angles are close, but do not quite match? The Blinn-Phong shading model proposes that some amount of light is reflected, depending on the amount of surface shininess and the difference between $ v$ and $ \ell $ [24]. See Figure 7.3. The bisector $ b$ is the vector obtained by averaging $ \ell $ and $ v$:

$\displaystyle b = { \ell + v \over \Vert \ell + v \Vert } .$ (7.3)

Using the compressed vector notation, the Blinn-Phong shading model sets the RGB pixel values as

$\displaystyle L = d I \;$max$\displaystyle (0,n \cdot \ell) + s I \;$max$\displaystyle (0,n\cdot b)^x .$ (7.4)

This additively takes into account shading due to both diffuse and specular components. The first term is just the Lambertian shading model, (7.2). The second component causes increasing amounts of light to be reflected as $ b$ becomes closer to $ n$. The exponent $ x$ is a material property that expresses the amount of surface shininess. A lower value, such as $ x = 100$, results in a mild amount of shininess, whereas $ x=10000$ would make the surface almost like a mirror. This shading model does not correspond directly to the physics of the interaction between light and surfaces. It is merely a convenient and efficient heuristic, but widely used in computer graphics.

Steven M LaValle 2020-01-06