Phong Shading

The term Phong shading is used indiscriminately to describe both an illumination model and an interpolation method in 3D computer graphics.

Phong illumination or reflection model

Phong reflection can produce a certain degree of realism in three-dimensional objects by combining three elements - diffuse, specular and ambient for each considered point on a surface. It has several assumptions - all lights are points, only surface geometry is considered, only local modelling of diffuse and specular, specular colour is the same as light colour, ambient is a global constant. Diffuse,
I_d = I_i k_d \sin \theta 0 \le \theta \le 2\pi
where I_i is the brightness of the (point) light source. θ is the angle between the surface and the light source. k_d is the reflection coefficient. For multiple light sources,
I_d = k_d \sum_{n} I_{i,n} (L_n \cdot N)
where L and N are unit vectors, L_n being the light direction vector for the nth light source to the surface. Specular (highlight producing),
I_s = I_i k_s \cos^n \Omega = I_i k_s (R \cdot V)^n
where n indicates the surface reflectivity, infinity would indicate a perfect mirror. Ω is the angle between the 'mirror' and the viewer. R is the specular direction and V is the actual view vector. This fails to be produce radiosity, a flaw in Phong. Combining diffuse and specular is sufficient for local accuracy. To mimic global conditions an ambient element is added to give general illumination, usually as a constant value
I_g = I_a k_a
Combining all three gives
I = I_a k_a + I_i (k_d (L \cdot N) + k_s (R \cdot V)^n)
assuming no reduction of light intensity with distance, which can be added if desired.

Phong interpolation

As a rendering method, Phong shading can be regarded as an improved version of Gouraud shading that provides a better approximation to reality by approximating the Phong shading model. The main problem with Gouraud shading is that when a specular highlight occurs near the center of a large triangle, it will usually be missed entirely. This problem is fixed by Phong shading. Some argue that using smaller triangles fixes the problem of Gouraud shading, with respect to specular highlights. Others counter that Phong shading is better able to handle large triangles, and that in any case, very sharp specular highlights would require tiny triangles. The truth is somewhere in between, and it pays to remember that Phong interpolation does very little to soften the abrupt change in color gradient near the edges of triangles. In fact, the improved handling of specular highlights can worsen this problem. We are given three vertices in two dimensions, v1, v2 and v3, as well as normals for each vertex n1, n2 and n3; we assume these are of unit length. As in Gouraud shading, we linearly interpolate a normal N across the surface of the triangle, from the three given normals. This is done, as in Gouraud shading, for each pixel in the triangle, and at each pixel we normalize N and use it in the Phong illumination model to obtain the final pixel color. In some modern hardware, variants of this algorithm are called "pixel shading." It usually means that the lighting calculations can be done per-pixel, and that the lighting variables are interpolated across the triangle.

See also

 

<< PreviousWord BrowserNext >>
z transform
dovber schneersohn
javier bardem
basf
ed harris
1986 in film
before night falls
elasticity (economics)
1985 in film
judith wright
pollock (movie)
abe attell
1984 in film
quills
1983 in film
training day
saint james the great
ali (movie)
kaunas
i am sam
australian greens
tom wilkinson
euroairport basel mulhouse freiburg
thomas dolby
minamoto no yoshinaka
computational archaeology
bump mapping
alderney
sophie's choice
1982 in film
1981 in film
1980 in film
raoul wallenberg
1979 in film
1978 in film
george seaton
1977 in film
list of governors of greenland
thortveitite
euxenite
gadolinite
list of china administrative regions by area
1976 in film
1975 in film