float precise shadowcasting