equal
deleted
inserted
replaced
1 #!/usr/bin/python |
1 #!/usr/bin/python |
2 |
2 |
3 # this demo needs dragon model from |
3 # this demo needs dragon model from |
4 # http://graphics.stanford.edu/data/3Dscanrep/ |
4 # http://graphics.stanford.edu/data/3Dscanrep/ |
5 |
5 |
6 from raytracer import Raytracer, Light, Sphere, Triangle, Material |
6 from pyrit import * |
7 from plyreader import LoadStanfordPlyFile |
7 from plyreader import LoadStanfordPlyFile |
8 import Image |
|
9 |
8 |
10 rt = Raytracer() |
9 rt = Raytracer() |
|
10 top = KdTree() |
|
11 rt.setTop(top) |
|
12 rt.setCamera(Camera()) |
|
13 |
11 mat = Material(colour=(0.9, 0.9, 0.9)) |
14 mat = Material(colour=(0.9, 0.9, 0.9)) |
12 mat.setSmooth(True) |
15 mat.setSmooth(True) |
13 LoadStanfordPlyFile(rt, "../models/ply/dragon/dragon_vrip_res2.ply", |
16 LoadStanfordPlyFile(rt, "../models/ply/dragon/dragon_vrip_res2.ply", |
14 mat, scale=(-29.0, 29.0, -29.0), trans=(0.0, -3.6, 0.0)) |
17 mat, scale=(-29.0, 29.0, -29.0), trans=(0.0, -3.6, 0.0)) |
15 |
18 |
17 rt.addLight(light1) |
20 rt.addLight(light1) |
18 |
21 |
19 light2 = Light(position=(3.0, 0.0, 9.0), colour=(0.0, 1.0, 0.2)) |
22 light2 = Light(position=(3.0, 0.0, 9.0), colour=(0.0, 1.0, 0.2)) |
20 rt.addLight(light2) |
23 rt.addLight(light2) |
21 |
24 |
22 imagesize = (800, 600) |
25 top.optimize() |
23 data = rt.render(imagesize) |
26 |
24 img = Image.fromstring("RGB", imagesize, data) |
27 sampler = DefaultSampler(800, 600) |
25 img.save('dragon.png') |
28 rt.setSampler(sampler) |
|
29 rt.render() |
|
30 sampler.getPixmap().writePNG('dragon.png') |