From a9ca3b78ed09bc4933a2388ab226979b0636481d Mon Sep 17 00:00:00 2001
From: Benjamin Koltes <benjamin.koltes@student.ecp.fr>
Date: Wed, 23 Mar 2016 16:01:17 +0100
Subject: [PATCH] first test multiprocess

---
 scenes/test.py | 43 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)
 create mode 100644 scenes/test.py

diff --git a/scenes/test.py b/scenes/test.py
new file mode 100644
index 0000000..9ad8273
--- /dev/null
+++ b/scenes/test.py
@@ -0,0 +1,43 @@
+# Show to python where to find the modules
+import sys
+sys.path.append('..')
+
+from camera import Camera
+from scene import *
+from light import *
+from raytracer import imsave
+import numpy as np
+import matplotlib.image
+import itertools
+import multiprocessing
+
+def trace_ray_mutliprocess(t):
+    (i, j, camera, scene, nb_reflexion) = t
+    return trace_ray(camera.ray_at(i, j), scene, camera, nb_reflexion)
+
+(nx, ny, nb_reflexion) = (1000, 1000, 10)
+camera = Camera(nx, ny, 1)
+materiau_sphere_bleue = Material(Vector([0,0,1.]), .5, .5, .5, 1000,.1)
+materiau_sphere_verte = Material(Vector([0,1,0]), .5, .5, .5, 1000, .6)
+materiau_sphere_rouge = Material(Vector([1,0,0]), .5, .5, .5, 1000, .3)
+sphere_verte = Sphere(Vector([3,-3,4]), 2.5, materiau_sphere_verte)
+sphere_bleue = Sphere(Vector([0,0,3]), 0.8, materiau_sphere_bleue)
+sphere_rouge = Sphere(Vector([0.5,0.5,2]), 0.5, materiau_sphere_rouge)
+scene = Scene()
+lumiere = Spotlight(Vector([1,1,0]), Vector([1,1,1]))
+scene.add_object(sphere_bleue)
+scene.add_object(sphere_rouge)
+scene.add_object(sphere_verte)
+scene.add_light(lumiere)
+img = np.zeros((nx, ny, 3))
+Rows = list(range(nx))
+Colons = list(range(ny))
+carte = list(itertools.product(Rows, Colons, [camera], [scene], [nb_reflexion]))
+
+if __name__ == '__main__':
+    pool = multiprocessing.Pool(8)
+    affiche = pool.map(trace_ray_mutliprocess, carte)
+    p.close()
+    p.join()
+    img = np.array(img).reshape(nx, ny, 3)
+    imsave('test.png', affiche)
-- 
GitLab