Beispiel #1
0
 def test_determine_diffuse_contribution(self):
     sphere = data.Sphere(data.Point(0, 0, 0), 1, data.Color(0.5, 0.7, 0.8), data.Finish(0.5, 0.5, 0.5, 0.05))
     light = data.Light(data.Point(0, 0, 100), data.Color(1.5, 1.2, 1.3))
     inter_point = data.Point(0, 0, 1)
     inter_list = [
         (
             data.Sphere(data.Point(0, 0, 102), 1, data.Color(0.5, 0.7, 0.8), data.Finish(0.5, 0.5, 0.5, 0.05)),
             data.Point(0, 0, 101),
         )
     ]
     normal = collisions.sphere_normal_at_point(sphere, inter_point)
     off_pt = cast.find_pt_off_sphere(inter_point, normal)
     dir_vect = vector_math.normalize_vector(vector_math.vector_from_to(off_pt, light.pt))
     ray = data.Ray(off_pt, dir_vect)
     sphere_list = []
     l_dir = vector_math.normalize_vector(vector_math.vector_from_to(off_pt, light.pt))
     l_dot_n = vector_math.dot_vector(normal, l_dir)
     result = cast.determine_diffuse_contribution(sphere, off_pt, light, normal, sphere_list, l_dir, l_dot_n)
     self.assertEqual(
         result[0], cast.get_diffuse_contribution(sphere, light, ray, inter_list, normal, dir_vect, off_pt)[0]
     )
     self.assertEqual(
         result[1], cast.get_diffuse_contribution(sphere, light, ray, inter_list, normal, dir_vect, off_pt)[1]
     )
     self.assertEqual(
         result[2], cast.get_diffuse_contribution(sphere, light, ray, inter_list, normal, dir_vect, off_pt)[2]
     )
Beispiel #2
0
 def test_get_diffuse_contribution(self):
     sphere = data.Sphere(data.Point(0, 0, 0), 1, data.Color(0.5, 0.7, 0.8), data.Finish(0.5, 0.5, 0.5, 0.05))
     light = data.Light(data.Point(0, 0, 100), data.Color(1.5, 1.2, 1.3))
     inter_point = data.Point(0, 0, 1)
     normal = collisions.sphere_normal_at_point(sphere, inter_point)
     inter_list = []
     off_pt = cast.find_pt_off_sphere(inter_point, normal)
     dir_vect = vector_math.normalize_vector(vector_math.vector_from_to(off_pt, light.pt))
     ray = data.Ray(off_pt, dir_vect)
     result = cast.get_diffuse_contribution(sphere, light, ray, inter_list, normal, dir_vect, off_pt)
     self.assertEqual(result[0], (vector_math.dot_vector(normal, dir_vect) * 1.5 * 0.5 * 0.5))
     self.assertEqual(result[1], (vector_math.dot_vector(normal, dir_vect) * 1.2 * 0.7 * 0.5))
     self.assertEqual(result[2], (vector_math.dot_vector(normal, dir_vect) * 1.3 * 0.8 * 0.5))