add specular lighting. replaced double by float