Gouraud shading is a more advanced shading technique compared to flat shading. Instead of using a single color fill on each triangle, the Gouraud shader draws a gradient on each triangle. The colors of the gradient are determined by the ambient color and a calculated color per vertex normal. These can then be interpolated by drawing a gradient.
Determining the color per vertex normal is similar to calculating the color of each triangle using flat shading. Gouraud shading calculates the angle between a vertex normal and a light source.
Because there are more vertex normals than triangle normals to be calculated and drawing a gradient is more CPU intensive than drawing a regular fill, this shader is a bit heavier on the CPU than flat shading.
Have a look at the following three spheres. The sphere on the left uses a flat shader. The sphere in the middle shows eight vertices that form six triangles. Based on the calculated color value of each vertex and the ambient color, a...