implemented normal mapping, a few tricks were necessary to guarantee that the ray will not get through the surface(for this it will be just mirrored), so there is an additional calcNormal attribute in the Ray Intersection Point data structure, to solve this problem