Implementing diffuse per-vertex shading with a single point light source