The Phong reflection model (also called Phong illumination or Phong lighting) is an empirical model of the local illumination of points on a surface designed by the computer graphics researcher Bui Tuong Phong. In 3D computer graphics, it is sometimes referred to as "Phong shading", particularly if the model is used with the interpolation method of the same name and in the context of pixel shaders or other places where a lighting calculation can be referred to as “shading”.
History The Phong reflection model was developed by Bui Tuong Phong at the University of Utah, who published it in his 1975 Ph.D. dissertation. It was published in conjunction with a method for interpolating the calculation for each individual pixel that is rasterized from a polygonal surface model; the interpolation technique is known as Phong shading, even when it is used with a reflection model other than Phong's. Phong's methods were considered radical at the time of their introduction, but have since become the de facto baseline shading method for many rendering applications. Phong's methods have proven popular due to their generally efficient use of computation time per rendered pixel.
Concepts Phong reflection is an empirical model of local illumination. It describes the way a surface reflects light as a combination of the diffuse reflection of rough surfaces with the specular reflection of shiny surfaces. It is based on Phong's informal observation that shiny surfaces have small intense specular highlights, while dull surfaces have large highlights that fall off more gradually. The model also includes an ambient term to account for the small amount of light that is scattered about the entire scene. For each light source in the scene, components i s {\displaystyle i_{\text{s}}} and i d {\displaystyle i_{\text{d}}} are defined as the intensities (often as RGB values) of the specular and diffuse components of the light sources, respectively. A single term i a {\displaystyle i_{\text{a}}} controls the ambient lighting; it is sometimes computed as a sum of contributions from all light sources. For each material in the scene, the following parameters are defined:
k s {\displaystyle k_{\text{s}}} , which is a specular reflection constant, the ratio of reflection of the specular term of incoming light,
k d {\displaystyle k_{\text{d}}} , which is a diffuse reflection constant, the ratio of reflection of the diffuse term of incoming light (Lambertian reflectance),
k a {\displaystyle k_{\text{a}}} , which is an ambient reflection constant, the ratio of reflection of the ambient term present in all points in the scene rendered, and
α {\displaystyle \alpha } , which is a shininess constant for this material, which is larger for surfaces that are smoother and more mirror-like. When this constant is large the specular highlight is small.
Furthermore, there is
lights {\displaystyle {\text{lights}}} , which is the set of all light sources,
L ^ m {\displaystyle {\hat {L}}_{m}} , which is the direction vector from the point on the surface toward each light source ( m {\displaystyle m} specifies the light source),
N ^ {\displaystyle {\hat {N}}} , which is the normal at this point on the surface,
R ^ m {\displaystyle {\hat {R}}_{m}} , which is the direction that a perfectly reflected ray of light would take from this point on the surface, and
V ^ {\displaystyle {\hat {V}}} , which is the direction pointing towards the viewer (such as a virtual camera). Then the Phong reflection model provides an equation for computing the illumination of each surface point I p {\displaystyle I_{\text{p}}} :
… excerpt ends here. Continue reading the full article.


