page 313, Angel's book. There are four versions of the shaded sphere on the website. The first, shadedSphere1, uses the true vertex normals and per-vertex shading. The second, shadedSphere2, uses the true normal and per-fragment shading. The third and fourth, shadedSphere3 and shadedSphere4, use the normal computed from the three vertices of each triangle and do per-vertex and per-fragment shading, respectively. The program shadedCube is a rotating cube with the normals computed from the vertices of each triangle.