demos/triangles_monkey.py
branchpyrit
changeset 29 574c34441a1c
parent 28 ffe83ca074f3
child 60 a23b5089b9c3
equal deleted inserted replaced
28:ffe83ca074f3 29:574c34441a1c
     1 #!/usr/bin/python
     1 #!/usr/bin/python
     2 
     2 
     3 import sys
     3 import sys
     4 sys.path.append(open('ModulePath').read().strip())
     4 sys.path.append(open('ModulePath').read().strip())
     5 
     5 
     6 from raytracer import Raytracer, Light, Sphere, Triangle, Material
     6 from raytracer import Raytracer, Light, Sphere, Triangle, NormalVertex, Material
       
     7 from objreader import LoadWavefrontObjFile
     7 import Image
     8 import Image
     8 
       
     9 def LoadWavefrontObjFile(rt, mat, filename):
       
    10 	vertices = []
       
    11 	fp = file(filename)
       
    12 	while True:
       
    13 		ln = fp.readline()
       
    14 		if ln == "":
       
    15 			break;
       
    16 		ln = ln.split()
       
    17 		if ln[0] == "v":
       
    18 			v = [1.5*float(x) for x in ln[1:4]]
       
    19 			vertices.append(tuple(v))
       
    20 		if ln[0] == "f":
       
    21 			f = [vertices[int(x)-1] for x in ln[1:4]]
       
    22 			face = Triangle(NormalVertex(f[0]), NormalVertex(f[1]), NormalVertex(f[2]), mat)
       
    23 			rt.addshape(face)
       
    24 
     9 
    25 rt = Raytracer()
    10 rt = Raytracer()
    26 mat = Material(colour=(0.9, 0.9, 0.9))
    11 mat = Material(colour=(0.9, 0.9, 0.9))
    27 LoadWavefrontObjFile(rt, mat, "monkey.obj")
    12 LoadWavefrontObjFile(rt, "monkey.obj", mat, 1.5)
    28 
    13 
    29 light = Light(position=(-5.0, 2.0, 8.0), colour=(0.9, 0.3, 0.6))
    14 light = Light(position=(-5.0, 2.0, 8.0), colour=(0.9, 0.3, 0.6))
    30 rt.addlight(light)
    15 rt.addlight(light)
    31 
    16 
    32 imagesize = (800, 600)
    17 imagesize = (800, 600)