demos/dragon.py
author Radek Brich <radek.brich@devl.cz>
Thu, 10 Apr 2008 23:20:36 +0200
branchpyrit
changeset 65 242839c6d27d
parent 62 07c2f8084719
child 69 303583d2fb97
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:
18
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     1
#!/usr/bin/python
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     2
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     3
# this demo needs dragon model from
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     4
# http://graphics.stanford.edu/data/3Dscanrep/
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     5
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     6
from raytracer import Raytracer, Light, Sphere, Triangle, Material
29
574c34441a1c new C++ demo: realtime_bunny
Radek Brich <radek.brich@devl.cz>
parents: 28
diff changeset
     7
from plyreader import LoadStanfordPlyFile
18
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     8
import Image
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     9
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    10
rt = Raytracer()
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    11
mat = Material(colour=(0.9, 0.9, 0.9))
62
07c2f8084719 more SConscript tweaking, make model preparation work again
Radek Brich <radek.brich@devl.cz>
parents: 60
diff changeset
    12
LoadStanfordPlyFile(rt, "../models/ply/dragon/dragon_vrip_res2.ply",
29
574c34441a1c new C++ demo: realtime_bunny
Radek Brich <radek.brich@devl.cz>
parents: 28
diff changeset
    13
	mat, smooth=True, scale=(-29.0, 29.0, -29.0), trans=(0.0, -3.6, 0.0))
18
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    14
25
b8232edee786 tuned ray-triangle intersection, now there are three algorithms to choose from:
Radek Brich <radek.brich@devl.cz>
parents: 24
diff changeset
    15
light1 = Light(position=(-5.0, 2.0, 8.0), colour=(0.9, 0.3, 0.2))
b8232edee786 tuned ray-triangle intersection, now there are three algorithms to choose from:
Radek Brich <radek.brich@devl.cz>
parents: 24
diff changeset
    16
rt.addlight(light1)
b8232edee786 tuned ray-triangle intersection, now there are three algorithms to choose from:
Radek Brich <radek.brich@devl.cz>
parents: 24
diff changeset
    17
b8232edee786 tuned ray-triangle intersection, now there are three algorithms to choose from:
Radek Brich <radek.brich@devl.cz>
parents: 24
diff changeset
    18
light2 = Light(position=(3.0, 0.0, 9.0), colour=(0.0, 1.0, 0.2))
b8232edee786 tuned ray-triangle intersection, now there are three algorithms to choose from:
Radek Brich <radek.brich@devl.cz>
parents: 24
diff changeset
    19
rt.addlight(light2)
18
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    20
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    21
imagesize = (800, 600)
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    22
data = rt.render(imagesize)
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    23
img = Image.fromstring("RGB", imagesize, data)
25b7c445cf61 new demo: dragon.py
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    24
img.save('dragon.png')