demos/boxes.py
author Radek Brich <radek.brich@devl.cz>
Thu, 10 Apr 2008 23:20:36 +0200
branchpyrit
changeset 65 242839c6d27d
parent 60 a23b5089b9c3
child 75 20dee9819b17
permissions -rwxr-xr-x
basic detection of compiler (GCC or ICC) and CPU capabilities try to detect Python path in Windows and allow direct specification through build option plus other build system fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
57
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     1
#!/usr/bin/python
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     2
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     3
from raytracer import Raytracer, Material, Box, Light
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     4
import Image
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     5
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     6
rt = Raytracer()
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     7
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     8
light1 = Light(position=(0.0, 5.0, -5.0), colour=(0.7, 0.3, 0.6))
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     9
rt.addlight(light1)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    10
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    11
light2 = Light(position=(-2.0, 10.0, -2.0), colour=(0.4, 0.6, 0.3))
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    12
rt.addlight(light2)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    13
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    14
mat0 = Material(colour=(0.7, 0.7, 0.7))
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    15
mat0.setReflectivity(0.0)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    16
for x in range(8):
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    17
	for y in range(8):
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    18
		for z in range(8):
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    19
			box = Box(L=(-4.3+x, -4.6+y, -8.6+z), H=(-3.7+x, -4.0+y, -8.0+z), material=mat0)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    20
			rt.addshape(box)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    21
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    22
imagesize = (800, 600)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    23
data = rt.render(imagesize)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    24
img = Image.fromstring("RGB", imagesize, data)
1e92c21b9a61 new python demo: boxes
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    25
img.save('boxes.png')