Implementing per-vertex ambient diffuse and specular (ADS) shading