diffuse shading / specular highlights (still buggy)