Why do gourad and phong shading computations end up being the same computation?
<p>Gourad shading interpolates colors, while phone shading interpolates normals.</p>

<p>Let P be some point in a triangle, and let N_x be the normal at point X, and C be the color of a directional light. Let a + b + c = 1 be the ratios of distances to each corner from P.</p>

<p>We compute the pixel color at point P assuming gourad shading with</p>

<p>a N_0 C + b N_1 C + c N_2 C</p>

<p>If we assume phong shading instead and interpolate normals first, then the pixel color is</p>

<p>(a N_0 + b N_1 + c N_2) C</p>

<p>The 2 expressions I wrote above are the same since the dot product is distributive. However, obviously, gourad and phong shading look very different. Something is wrong in the computation ... what could it be?</p>