diff --git a/__pycache__/operation_vector.cpython-33.pyc b/__pycache__/operation_vector.cpython-33.pyc
index 200dee8539d5beca61dbe0c0a5cc3b84ef2dcba1..6985a18e0b64f2524fb9bd0aa6ba3ed8b3334944 100644
Binary files a/__pycache__/operation_vector.cpython-33.pyc and b/__pycache__/operation_vector.cpython-33.pyc differ
diff --git a/__pycache__/raytracer.cpython-33.pyc b/__pycache__/raytracer.cpython-33.pyc
index d438c668c55e9e716dd620b8256fd685dab4b5db..30618db9ed94af2cbefc1ffb44ebb596ab27ebfc 100644
Binary files a/__pycache__/raytracer.cpython-33.pyc and b/__pycache__/raytracer.cpython-33.pyc differ
diff --git a/raytracer.py b/raytracer.py
index fe34768add2db921f28bc0fd4393e2577df39d74..e6b7538254ee496b7c3c805b0bc90ac9d441a56c 100644
--- a/raytracer.py
+++ b/raytracer.py
@@ -22,7 +22,8 @@ def trace_ray(ray, scene, camera):
         return Vector([0,0,0])
     color = ambiant_illuminate(class_intersect.position, class_intersect.object)
     for light in scene.light_list:
-        color += phong_illuminate(light, class_intersect.position, class_intersect.normal, class_intersect.object, Vector([0,0,0]))
+#        color += phong_illuminate(light, class_intersect.position, class_intersect.normal, class_intersect.object, Vector([0,0,0]))
+        color += compute_light(light, scene, class_intersect, Vector([0,0,0]))
     color_object = class_intersect.object.material.color
     c_x, c_y, c_z = color.coord()
     return Vector([max(min(c_x, 1), 0), max(0, min(c_y, 1)), max(0, min(c_z,1))])
@@ -37,3 +38,15 @@ def raytracer_render(camera, scene):
             color = trace_ray(ray, scene, camera)
             affiche[i,j,:] = color.coord()
     return affiche
+
+def compute_light(light, scene, intersection, viewer):
+    ray = Ray(light.position, (intersection.position - light.position).normalized())
+    distance = (intersection.position - light.position).norm()
+    distance_limit = distance*.99
+    for o in scene.object_list:
+        resultat = intersect(o, ray)
+        if resultat != None:
+            d = (resultat.position - ray.starting_point).norm()
+            if d < distance_limit: # si un objet est dans la trajectoire du rayon
+                return Vector([0, 0, 0])
+    return phong_illuminate(light, intersection.position, intersection.normal, intersection.object, viewer)