List of common shading algorithms

This article lists common shading algorithms used in computer graphics.

Interpolation techniques
These techniques can be combined with any illumination model:
 * Flat shading
 * Gouraud shading
 * Phong shading

Realistic
The illumination models listed here attempt to model the perceived brightness of a surface or a component of the brightness in a way that looks realistic. Some take physical aspects into consideration, like for example the Fresnel equations, microfacets, the rendering equation and subsurface scattering.

Diffuse reflection
Light that is reflected on a non-metallic and/or a very rough surface gives rise to a diffuse reflection. Models that describe the perceived brightness due to diffuse reflection include:
 * Lambert
 * Oren–Nayar (Rough opaque diffuse surfaces)
 * Minnaert

Specular reflection
Light that is reflected on a relatively smooth surface gives rise to a specular reflection. This kind of reflection is especially strong for metal surfaces. Models that describe the perceived brightness due to specular reflection include:
 * Phong
 * Blinn–Phong
 * Cook–Torrance (microfacets)
 * Ward anisotropic

Subsurface scattering
Subsurface scattering is an indirect form of reflection where some of the light is transmitted into a semi-transparent material, scattered under the surface and bounced back out again. The light that is not absorbed by the material and bounced out through the surface again gives rise to a diffuse indirect reflection, which will illuminate the surface not only where it is lit, but also in the vicinity of where the light hits, as well as on the other side of thin parts of an object. Most non-metals can transmit light to a certain degree and are therefore affected by this effect. Subsurface scattering models include:
 * Hanrahan–Krueger model of subsurface scattering

Non-photorealistic
Non-photorealistic illumination models don't attempt to model the perceived brightness of a surface in a realistic way, but focuses expressing certain styles. They are used for example in cartoons, video games, movies or technical illustrations, and include:
 * Cel shading
 * Gooch shading