Flat, Gouraud, & Phong Shading

Comparing per-face, per-vertex, and per-pixel lighting models.

Phong Reflection Model

Calculates material lighting intensity $I$ by combining three terms:

  • Ambient: General background glow.
  • Diffuse: Lambertian cosine law reflection depending on the angle between normal and light ($N \cdot L$).
  • Specular: Shiny highlights ($R \cdot V^n$) based on shininess exponent $n$.

Interpolation Styles

  • Flat Shading: Evaluates color once per polygon face (causes faceted appearance).
  • Gouraud Shading: Computes color at vertices and interpolates across the polygon face.
  • Phong Shading: Interpolates normals across the face and computes illumination per pixel (produces best specular highlights).

Ready to Visualize Shading?

Launch our interactive visualizer to step through calculations in real-time.

Launch Shading Visualizer →