diff --git a/scenes/__pycache__/test.cpython-33.pyc b/scenes/__pycache__/test.cpython-33.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94264b0cc56a4d3f2361c20e92bed43eadfee121 Binary files /dev/null and b/scenes/__pycache__/test.cpython-33.pyc differ diff --git a/scenes/test.py b/scenes/multiprocessing.py similarity index 51% rename from scenes/test.py rename to scenes/multiprocessing.py index 9ad8273958509924b90a0acd88d98f9b1936a4ab..2e7fb230bc98cb80cf895f8a1ac51e9014dfd5ac 100644 --- a/scenes/test.py +++ b/scenes/multiprocessing.py @@ -5,39 +5,42 @@ sys.path.append('..') from camera import Camera from scene import * from light import * -from raytracer import imsave +from raytracer import * import numpy as np -import matplotlib.image +from matplotlib.image import imsave 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) + return np.array(trace_ray(camera.ray_at(i, j), scene, camera, nb_reflexion).coord()) -(nx, ny, nb_reflexion) = (1000, 1000, 10) +(nx, ny, nb_reflexion) = (1000, 1000, 20) 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) +materiau_sphere_blanche = Material(Vector([1,0,0]), .5, .5, .5, 1000, .7) 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) +sphere_bleue = Sphere(Vector([0,0,3]), .8, materiau_sphere_bleue) +sphere_rouge = Sphere(Vector([.5,.5,2]), .5, materiau_sphere_rouge) +sphere_blanche = Sphere(Vector([0,0,0]), 25, materiau_sphere_blanche) 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_object(sphere_blanche) 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])) +affiche = np.zeros((nx, ny, 3)) +rows = list(range(nx)) +columns = list(range(ny)) +carte = list(itertools.product(rows, columns, [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) + affiche_map = pool.map(trace_ray_mutliprocess, carte) + pool.close() + pool.join() + affiche = np.array(affiche_map).reshape(nx, ny, 3) imsave('test.png', affiche) diff --git a/scenes/test.png b/scenes/test.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed9c5a06462ae7071321f498b17df88e1070740 Binary files /dev/null and b/scenes/test.png differ