def dr(): white_snow = Material(diffuse=Color.color(1, 0.98, 0.98), spec=96) black = Material(diffuse=Color.color(0, 0, 0), spec=96) orange_carrot = Material(diffuse=Color.color(0.92, 0.54, 0.13), spec=96) white = Material(diffuse=Color.color(1, 1, 1), spec=96) gray = Material(diffuse=Color.color(0.22, 0.22, 0.22), spec=96) darkblue = Material(diffuse=Color.color(0.031, 0.255, 0.361), spec=64) rayTracer = Raytracer(500, 500) rayTracer.pointLight = PointLight(position=Raytracer.vector(0, 0, 0), intensity=1) rayTracer.ambientLight = AmbientLight(strength=0.1) # Cuarto # Techo rayTracer.scene.append( Plane(Raytracer.vector(0, 5, 0), Raytracer.vector(0, -1, 0), black)) # Suelo rayTracer.scene.append( Plane(Raytracer.vector(0, -5, 0), Raytracer.vector(0, 1, 0), gray)) # Pared atras rayTracer.scene.append( Plane(Raytracer.vector(0, 0, -15), Raytracer.vector(0, 0, 1), gray)) # Pared izquierda rayTracer.scene.append( Plane(Raytracer.vector(-5, 0, 0), Raytracer.vector(1, 0, 0), gray)) # Pared derecha rayTracer.scene.append( Plane(Raytracer.vector(5, 0, 0), Raytracer.vector(-1, 0, 0), gray)) # Cubos rayTracer.scene.append(AABB(Raytracer.vector(-1, -2, -7), 1.5, darkblue)) rayTracer.scene.append( AABB(Raytracer.vector(1, -2, -7), 1.5, orange_carrot)) rayTracer.rtRender() rayTracer.glFinish('output/dr3.bmp')
def proyecto(): wood = Material(texture=Texture('assets/wood.bmp')) white_snow = Material(diffuse=Color.color(1, 0.98, 0.98), spec=96) grass = Material(diffuse=Color.color(0.26, 0.42, 0.18), spec=96) water = Material(diffuse=Color.color(0.031, 0.255, 0.361), spec=50, ior=1.5, matType=REFLECTIVE) darkblue = Material(diffuse=Color.color(0.031, 0.255, 0.361), spec=64) playera = Material(diffuse=Color.color(0.2, 0.86, 0.85), spec=64) piel = Material(diffuse=Color.color(0.85, 0.71, 0.45), spec=64) cafe = Material(diffuse=Color.color(0.32, 0.24, 0.08), spec=64) window = Material(spec=40, ior=1.5, matType=TRANSPARENT) rayTracer = Raytracer(500, 500) rayTracer.pointLight = PointLight(position=Raytracer.vector(0, 0, 0), intensity=1) rayTracer.pointLight = PointLight(position=Raytracer.vector(0, 1, 0), intensity=1) rayTracer.ambientLight = AmbientLight(strength=0.1) rayTracer.dirLight = DirectionalLight(direction=rayTracer.vector( 1, -1, -2), intensity=0.5) rayTracer.envmap = Envmap('assets/unnamed.bmp') # Suelo rayTracer.scene.append( Plane(Raytracer.vector(0, -5, 0), Raytracer.vector(0, 1, 0), grass)) # Agua rayTracer.scene.append( AABB(Raytracer.vector(-5, -5, -10), Raytracer.vector(7, 0.2, 5), water)) # Suelo rayTracer.scene.append( AABB(Raytracer.vector(-1, -4, -19), Raytracer.vector(20, 1, 10), grass)) rayTracer.scene.append( AABB(Raytracer.vector(3, -3, -21), Raytracer.vector(17, 1, 10), grass)) rayTracer.scene.append( AABB(Raytracer.vector(6, -2, -23), Raytracer.vector(15, 1, 10), grass)) # Casa rayTracer.scene.append( AABB(Raytracer.vector(9, 0, -25), Raytracer.vector(10, 10, 10), wood)) # Ventana rayTracer.scene.append( AABB(Raytracer.vector(8, 2, -25), Raytracer.vector(5, 3, 11), window)) # Steve # ======================= # Piernas rayTracer.scene.append( AABB(Raytracer.vector(2, -4, -10), Raytracer.vector(0.5, 1.5, 0.5), darkblue)) rayTracer.scene.append( AABB(Raytracer.vector(2.6, -4, -10), Raytracer.vector(0.5, 1.5, 0.5), darkblue)) # Playera rayTracer.scene.append( AABB(Raytracer.vector(2.3, -2.5, -10), Raytracer.vector(1.1, 1.5, 0.5), playera)) rayTracer.scene.append( AABB(Raytracer.vector(1.5, -2, -10), Raytracer.vector(0.5, 0.5, 0.5), playera)) rayTracer.scene.append( AABB(Raytracer.vector(3.1, -2, -10), Raytracer.vector(0.5, 0.5, 0.5), playera)) # Brazos rayTracer.scene.append( AABB(Raytracer.vector(1.5, -2.75, -10), Raytracer.vector(0.5, 1, 0.5), piel)) rayTracer.scene.append( AABB(Raytracer.vector(3.1, -2.75, -10), Raytracer.vector(0.5, 1, 0.5), piel)) # Cabeza rayTracer.scene.append( AABB(Raytracer.vector(2.3, -1.3, -10), Raytracer.vector(1.1, 0.9, 1), piel)) # Pelo rayTracer.scene.append( AABB(Raytracer.vector(2.3, -0.75, -10), Raytracer.vector(1.1, 0.2, 1), cafe)) # Ojos rayTracer.scene.append( AABB(Raytracer.vector(2.1, -1.2, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2, -1.2, -9.5), Raytracer.vector(0.1, 0.1, 0.2), white_snow)) rayTracer.scene.append( AABB(Raytracer.vector(2.5, -1.2, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.6, -1.2, -9.5), Raytracer.vector(0.1, 0.1, 0.2), white_snow)) # Boca rayTracer.scene.append( AABB(Raytracer.vector(2.1, -1.4, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.1, -1.5, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.5, -1.4, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.5, -1.5, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.2, -1.5, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.3, -1.5, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.scene.append( AABB(Raytracer.vector(2.4, -1.5, -9.5), Raytracer.vector(0.1, 0.1, 0.2), cafe)) rayTracer.rtRender() rayTracer.glFinish('output/dr3.bmp')
import random snowman = Material(diffuse=color(1, 1, 1), spec=16) button = Material(diffuse=color(0, 0, 0), spec=32) nose = Material(diffuse=color(1, 0.5, 0), spec=64) width = 960 height = 1280 # width = 240 # height = 320 r = Raytracer(width, height) r.glClearColor(0.3, 0.5, 0.8) r.pointLight = PointLight(position=V3(-2, 2, 0), intensity=1) r.ambientLight = AmbientLight(strength=0.1) r.glClearColor(0.3, 0.5, 0.8) print('\nThis render gonna be legen—\n') r.scene.append(Sphere(V3(0.15, 1.6, -4), 0.05, button)) r.scene.append(Sphere(V3(-0.15, 1.6, -4), 0.05, button)) r.scene.append(Sphere(V3(0, 1.4, -3.9), 0.10, nose)) r.scene.append(Sphere(V3(0.20, 1.25, -4), 0.04, button)) r.scene.append(Sphere(V3(-0.08, 1.20, -4), 0.04, button)) r.scene.append(Sphere(V3(0.08, 1.20, -4), 0.04, button)) r.scene.append(Sphere(V3(-0.20, 1.25, -4), 0.04, button))
from obj import Obj, Envmap from sphere import Sphere, Material, PointLight, AmbientLight, Plane, AABB import random from textura import Texture # materiales suelo = Material(diffuse=color(0, 1, 0), spec=64) madera = Material(texture=Texture('madera.bmp')) grama = Material(texture=Texture('hoja.bmp')) ladrillo = Material(texture=Texture('piedra.bmp')) puerta = Material(texture=Texture('puertas.bmp')) imagen = Raytracer(900, 600) imagen.envmap = Envmap('cielo-atardecer.bmp') imagen.pointLight = PointLight(position=(0, 2, 0), intensity=0.5) imagen.ambientLight = AmbientLight(strength=0.2) # tierra imagen.scene.append(Plane((0, -4, 0), (0, 1, 0), suelo)) # arbol 1 # tronco imagen.scene.append(AABB((-5, -3.5, -7), 1, madera)) imagen.scene.append(AABB((-5, -2.5, -7), 1, madera)) imagen.scene.append(AABB((-5, -1.5, -7), 1, madera)) imagen.scene.append(AABB((-5, -0.5, -7), 1, madera)) # hojas imagen.scene.append(Sphere((-4.9, 0.2, -6), 1.2, grama)) imagen.scene.append(Sphere((-3.9, 0, -7), 1.5, grama)) imagen.scene.append(Sphere((-4.9, 1.6, -8), 1, grama)) # castillo
brick = Material(diffuse = color(0.8, 0.25, 0.25 ), spec = 16) stone = Material(diffuse = color(0.4, 0.4, 0.4 ), spec = 32) mirror = Material(spec = 64, matType = REFLECTIVE) glass = Material(spec = 64, ior = 1.5, matType= TRANSPARENT) width = 256 height = 256 r = Raytracer(width,height) r.glClearColor(0.2, 0.6, 0.8) r.glClear() r.envmap = Envmap('envmap.bmp') r.pointLight = PointLight(position = V3(0,0,0), intensity = 1) r.ambientLight = AmbientLight(strength = 0.1) #r.scene.append( Sphere(V3( 1, 1, -10), 1.5, brick) ) #r.scene.append( Sphere(V3( 0, -1, -5), 1, glass) ) #r.scene.append( Sphere(V3(-3, 3, -10), 2, mirror) ) r.scene.append( Plane( V3(-2,-3,0), V3(1,1,0), stone)) #r.scene.append( AABB(V3(0, 1.5, -5), 1.5, stone ) ) r.scene.append( AABB(V3(1.5, -1.5, -5), 1.5, mirror ) ) r.scene.append( AABB(V3(-1.5, -1.5, -5), 1.5, glass ) ) r.rtRender()
from obj import Obj, Texture, Envmap from sphere import * import random wall = Material(diffuse=color(0.49, 0.67, 0.48), spec=16) roof = Material(diffuse=color(0.66, 0.84, 0.67), spec=16) floor = Material(diffuse=color(0.4, 0.35, 0.35), spec=16) cubo = Material(diffuse=color(0.4, 0.69, 0.8), spec=32) width = 500 height = 500 r = Raytracer(width, height) r.glClearColor(0.2, 0.6, 0.8) r.glClear() r.pointLight = PointLight(position=V3(1, 1, 3), intensity=0.75) r.ambientLight = AmbientLight(strength=0.1) print('\nThis render gonna be legen—\n') # cuarto r.scene.append(Plane(V3(0, -15, 0), V3(0, 1, 0), floor)) r.scene.append(Plane(V3(0, 15, 0), V3(0, -1, 0), roof)) r.scene.append(Plane(V3(-15, 0, 0), V3(1, 0, 0), wall)) r.scene.append(Plane(V3(15, 0, 0), V3(-1, 0, 0), wall)) r.scene.append(Plane(V3(0, 0, -45), V3(0, 0, 1), wall)) # cubos r.scene.append(AABB(V3(0, -2.1, -10), 1.5, cubo)) r.scene.append(AABB(V3(1.3, 1.8, -7), 0.75, cubo))
import random # brick = Material(diffuse = color(0.8, 0.25, 0.25 ), spec = 16) # stone = Material(diffuse = color(0.4, 0.4, 0.4 ), spec = 32) # grass = Material(diffuse = color(0.5, 1, 0), spec = 32) # glass = Material(diffuse = color(0.25, 1, 1), spec = 64) coal = Material(diffuse = color(0.15,0.15,0.15), spec = 32) snow = Material(diffuse = color(1, 1, 1), spec = 64) carrot= Material(diffuse = color(1, 0.54, 0), spec = 64) eyes= Material(diffuse = color(0.90, 0.90, 0.90),spec = 64) width = 600 height = 400 r = Raytracer(width,height) r.pointLight = PointLight(position = (-1,2,0), intensity = 1) r.ambientLight = AmbientLight(strength = 0.1) r.scene.append( Sphere(V3(0, -3.1, -10), 2.3, snow) ) r.scene.append( Sphere(V3(0, 0, -10), 1.8, snow) ) r.scene.append( Sphere(V3(0, 2.9, -10), 1.3, snow) ) r.scene.append( Sphere(V3(0, 2.15, -8), 0.24, carrot) ) r.scene.append( Sphere(V3(0.43, 1.8, -8), 0.1, coal) ) r.scene.append( Sphere(V3(0.15, 1.6, -8), 0.1, coal) ) r.scene.append( Sphere(V3(-0.15, 1.6, -8), 0.1, coal) ) r.scene.append( Sphere(V3(-0.43, 1.8, -8), 0.1, coal) ) r.scene.append( Sphere(V3(0.40, 2.5, -8), 0.12, coal) )