asd, try more accurate specular calculation