From 1a06081d807a6d8507f3299fba4317550b6d4f69 Mon Sep 17 00:00:00 2001 From: Benjamin KOLTES <benjamin.koltes@student.ecp.fr> Date: Sat, 5 Mar 2016 15:03:04 +0100 Subject: [PATCH] v4 --- __pycache__/light.cpython-34.pyc | Bin 1009 -> 1028 bytes __pycache__/raytracer.cpython-34.pyc | Bin 1873 -> 1873 bytes light.py | 2 +- one_sphere.png | Bin 6359 -> 6168 bytes script_one_sphere.py | 15 +++++++++++++++ 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 script_one_sphere.py diff --git a/__pycache__/light.cpython-34.pyc b/__pycache__/light.cpython-34.pyc index 2c5c24287247609d3dab3d207689a77f08f299d3..60417f68fe643cf1eab424726ef84f615ce86096 100644 GIT binary patch delta 152 zcmey!-onB8j)#|v*K=N2%SKK~Mn;p#%8c_FS4}?5*ltk6$xy?=Ad<qwkj=s%Qp>|o z!^2R+z>vkpP{YiS1!f3~1Zy(;y<}owV0g(eIi2Ysiw;wf%w!#Ab7@`%28LVgiMdIc xiFqYO%nS?+noLC?g+(Hh>zIv%<ro+k{4|-17#SECiex~9+~fvE@yWNC#Q}8SAkqK; delta 133 zcmZqS_{h%rj)#}4hj(gN*+x!DMn>bw%8c_F=S)7#*e+Yk!%)M+P{Y8G#l}#>%#a0U z2#W-3GWoq^nq0+nkVTHENP4n8v$-@60|Ub?_Qc$z%*4EsB4!2#22G|SCI$wEBH_ss enT>>H85kJ+G?|MSK|<0XLUwWkqxj^v%;ErrwjLw^ diff --git a/__pycache__/raytracer.cpython-34.pyc b/__pycache__/raytracer.cpython-34.pyc index 541ae3bafce63d5351a9328de18fffded84bcccf..8a40572056d5a6b21fbeb02cf566056835ef4e13 100644 GIT binary patch delta 23 fcmcb}cae|%9S<+pl(=~t+4nOtnruGK*u@F}Wu6Eg delta 23 fcmcb}cae|%9S<+pb?K=a+4nOt8gD+%*u@F}Wp4-+ diff --git a/light.py b/light.py index 38106c2..c324f9d 100644 --- a/light.py +++ b/light.py @@ -13,7 +13,7 @@ def phong_illuminate(light, position, normal, object, viewer): R = 2*(L*N)*N - L V = (viewer - position).normalized() - i = kd*(L*N) + ks*(R*V)**alpha + i = ((kd*(L*N) + ks*(R*V)**alpha))*(N*L > 0) return i*(light.color ** object.material.color) diff --git a/one_sphere.png b/one_sphere.png index 7aed7ee4f5582aad31f2be17bef7755f16ff7f32..090a8d4f232416bfe3d6ea894b2eb203cac83bfb 100644 GIT binary patch literal 6168 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 delta 6343 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 OFnGH9xvX<aXaWG?hreq8 diff --git a/script_one_sphere.py b/script_one_sphere.py new file mode 100644 index 0000000..ff511e4 --- /dev/null +++ b/script_one_sphere.py @@ -0,0 +1,15 @@ +from scene import * +from light import Spotlight +from camera import Camera +from raytracer import raytracer_render +from matplotlib.image import imsave + +camera = Camera(200,200,2) +materiau_sphere = Material(Vector((0,0,1)), .1, .3, .8, 20) +sphere = Sphere(Vector([0,0,3]), 1, materiau_sphere) +lumiere = Spotlight(Vector((1, 1, 0)), Vector((1,1,1))) +scene = Scene() +scene.add_object(sphere) +scene.add_light(lumiere) +affiche = raytracer_render(camera, scene) +imsave('one_sphere.png',affiche) -- GitLab