Phong reflection model

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”.

[1][2] 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.

Phong reflection is an empirical model of local illumination.

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.

are defined as the intensities (often as RGB values) of the specular and diffuse components of the light sources, respectively.

For each material in the scene, the following parameters are defined: Furthermore, there is Then the Phong reflection model provides an equation for computing the illumination of each surface point

The diffuse term is not affected by the viewer direction (

The specular term is large only when the viewer direction (

is large, in the case of a nearly mirror-like reflection, the specular highlight will be small, because any viewpoint not aligned with the reflection will have a cosine less than one which rapidly approaches zero when raised to a high power.

Although the above formulation is the common way of presenting the Phong reflection model, each term should only be included if the term's dot product is positive.

When the color is represented as RGB values, as often is the case in computer graphics, this equation is typically modeled separately for R, G and B intensities, allowing different reflection constants

Another approximation[3] that addresses the calculation of the exponentiation in the specular term is the following: Considering that the specular term should be taken into account only if its dot product is positive, it can be approximated as where

This approximation of the specular term holds for a sufficiently large integer

is[citation needed], and practically doesn't require

to be normalized[citation needed] except for very low-resolved triangle meshes.

This method substitutes a few multiplications for a variable exponentiation, and removes the need for an accurate reciprocal-square-root-based vector normalization.

This means that the Phong equation can relate the shading seen in a photograph with the surface normals of the visible object.

Inverse refers to the wish to estimate the surface normals given a rendered image, natural or computer-made.

Thus the normals of an object in a photograph can only be determined, by introducing additional information such as the number of lights, light directions and reflection parameters.

For example, we have a cylindrical object, for instance a finger, and wish to compute the normal

Because of the powers of two in the equation there are two possible solutions for the normal direction.

Thus some prior information of the geometry is needed to define the correct normal direction.

The normals are directly related to angles of inclination of the line on the object surface.

Thus the normals allow the calculation of the relative surface heights of the line on the object using a line integral, if we assume a continuous surface.

If the object is not cylindrical, we have three unknown normal values

Then the two equations still allow the normal to rotate around the view vector, thus additional constraints are needed from prior geometric information.

For instance in face recognition those geometric constraints can be obtained using principal component analysis (PCA) on a database of depth-maps of faces, allowing only surface normals solutions which are found in a normal population.

Visual illustration of the Phong equation: here the light is white, the ambient and diffuse colors are both blue, and the specular color is white, reflecting a small part of the light hitting the surface, but only in very narrow highlights. The intensity of the diffuse component varies with the direction of the surface, and the ambient component is uniform (independent of direction).
Vectors for calculating Phong and Blinn–Phong shading