Phong Reflection Model

The Phong reflection model is a shading model, used heavily in 3D computer graphics for assigning shades to each individual pixel that is rasterized of some abstract representation of an object such as a sphere or cone. The Phong reflection model is a simplification of the more general rendering equation, which takes advantage of the following simplifications when deciding the shade of a pixel during rasterization of a surface:
  1. It is a local reflection model, i.e. it doesn't account for second-order reflections, as do raytracing or radiosity. In order to compensate for some of the losses of light, an extra ambient lighting term is added to the scene that is rendered.
  2. It divides the reflection from a surface into two subcomponents, specular reflection and diffuse reflection.
If we first define, for each light source in the scene to be rendered, the components i_s, i_d and i_{al} where these are the intensities (often as RGB values) of the specular, diffuse and ambient components of the light sources respectively. The local i_{al} term will be added to all the ambient terms of all other light sources to create a global i_a term. (This term may also have a global bias.) If we then define, for each material (which is typically assigned 1 to 1 for the objects in the scene, so that it is a sphere of material 1, which is a material which looks like e.g. copper, a cone of material 2, which is a material which looks like brass, etc.):
k_s: specular reflection constant, the ratio of reflection of the specular term of incoming light
k_d: diffuse reflection constant, the ratio of reflection of the diffuse term of incoming light
k_a: ambient reflection constant, the ratio of reflection of the ambient term present in all points in the scene rendered
\alpha: is a shininess constant for this material, which decides how "evenly" light is reflected from a shiny spot
We further define lights as the set of all light sources, L is the direction vector from the point on the surface toward each light source, N is the norm vector at this point of the surface, R is the direction a perfectly reflected ray of light (represented as a vector) would take from this point of the surface, and V is the direction towards the viewer (such as a virtual camera). Then the shade value for each pixel I_p can be calculated using this equation, which is the Phong shading equation:
I_p = k_a i_a + \sum_{lights} (k_d (L \cdot N) i_d + k_s (R \cdot V)^{\alpha}i_s)
We note that the diffuse term does not use the direction towards the viewer, as the diffuse term is equal in all directions from the point, including the direction of the viewer. (When we have color representations as RGB values, this equation will typically calculated individually for R, G and B intensities, which are then concatenated and written to the video frame buffer memory simultaneously.)

References

  • Phong, Bui Tuong : Illumination for Computer Generated Pictures. Commun. ACM 18(6): 311-317 (1975)

 

<< PreviousWord BrowserNext >>
whole body transplant
weener
the hot soldier
jim meddick
peace of nicias
x day
frankie muniz
swann v. charlotte mecklenburg board of education
satyagraha
alfred de musset
john john molina
barry switzer
jerry jones
hms queen elizabeth
organ transplant
bophuthatswana
borkum
2002 in film
shopping hours
thiotimoline
rapid eye movement
hubli dharwad
mersey ferry
queensway tunnel
kingsway tunnel
mont blanc tunnel
kingsway tramway subway
strategic petroleum reserve
grave accent
acute accent
double acute accent
twin study
cyrix cx5x86
tortell
culture of albania
lek
circumflex
list of presidents of albania
list of kings of albania
list of prime ministers of albania
list of princes of albania
lord guilford dudley
omelette
academic degree