Exemple #1
0
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')
Exemple #2
0
from gl import Raytracer, color, V2, V3
from obj import Obj, Texture
from sphere import Sphere, Material, PointLight, AmbientLight
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))
Exemple #3
0
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')
Exemple #4
0
from gl import Raytracer, color, V2, V3
from obj import Obj, Texture
from sphere import Sphere, Material, PointLight, AmbientLight
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)

width = 256
height = 256
r = Raytracer(width, height)

r.pointLight = PointLight(position=V3(-2, 2, 0), intensity=1)
r.ambientLight = AmbientLight(strength=0.1)

r.scene.append(Sphere(V3(0, 0, -5), 1, brick))
r.scene.append(Sphere(V3(-0.5, 0.5, -3), 0.25, stone))
#r.scene.append( Sphere(V3(-1,-1, -5), 0.5, grass) )
#r.scene.append( Sphere(V3( 1,-1, -5), 0.5, glass) )

r.rtRender()

r.glFinish('output.bmp')
Exemple #5
0
# 14/09/2020 - 21/09/2020

from gl import Raytracer, color
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))
Exemple #6
0
from gl import Raytracer, color, V2, V3
from obj import Obj, Texture, Envmap
from sphere import *
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)
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 ) )
Exemple #7
0
from obj import Obj, Texture, Envmap
from sphere import *
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)
mirror = Material(spec=64, matType=REFLECTIVE)
glass = Material(spec=64, ior=1.5, matType=TRANSPARENT)

boxMat = Material(texture=Texture('box.bmp'))

earthMat = Material(texture=Texture('earthDay.bmp'))

width = 512
height = 512
r = Raytracer(width, height)
r.glClearColor(0.2, 0.6, 0.8)
r.glClear()

r.envmap = Envmap('envmap.bmp')

# Lights
#r.pointLights.append( PointLight(position = V3(-4,4,0), intensity = 0.5))
#r.pointLights.append( PointLight(position = V3( 4,0,0), intensity = 0.5))
r.dirLight = DirectionalLight(direction=V3(1, -1, -2), intensity=0.5)
r.ambientLight = AmbientLight(strength=0.1)

# Objects
#r.scene.append( Sphere(V3( 0, 0, -8), 2, brick) )
#r.scene.append( Sphere(V3( -0.5, 0.5, -5), 0.25, stone))
#r.scene.append( Sphere(V3( 0.25, 0.5, -5), 0.25, stone))
Exemple #8
0
from gl import Raytracer, color, V2, V3
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))
Exemple #9
0
import random

from gl import Raytracer, color
from object import Object, Texture
from sphere import Sphere, Material

r = Raytracer(500, 500)

brick = Material(diffuse=color(0.8, 0.25, 0.25))
stone = Material(diffuse=color(0.4, 0.4, 0.4))
grass = Material(diffuse=color(0.5, 1, 0))

snow = Material(diffuse=color(1, 0.96, 0.96))
orange = Material(diffuse=color(1, 0.65, 0))
coal = Material(diffuse=color(0.2, 0.2, 0.2))
dark = Material(diffuse=color(1, 1, 1))

##  snowman body
r.scene.append(Sphere([0, 2.5, -7], 1, snow))
r.scene.append(Sphere([0, 0.5, -6], 1.3, snow))
r.scene.append(Sphere([0, -2, -8], 2, snow))

##  snowman eyes
r.scene.append(Sphere([0.25, 2.2, -5], 0.07, coal))
r.scene.append(Sphere([-0.25, 2.2, -5], 0.07, coal))

##  snowman nose
r.scene.append(Sphere([0, 1.9, -5], 0.2, orange))

##  snowman mouth
r.scene.append(Sphere([0.25, 1.6, -5], 0.07, stone))
Exemple #10
0
from utils.gl_color import color
from utils.gl_math import V2, V3
from gl import Raytracer
from obj import Obj, Texture
from sphere import Sphere, Material
import random

width = 600
height = 400

snow = Material(diffuse=color(1, 1, 1))
button = Material(diffuse=color(0, 0, 0))
mouth = Material(diffuse=(color(0.5, 0.5, 0.5)))
nose = Material(diffuse=(color(1, 0.65, 0)))

r = Raytracer(width, height)
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, nose))

r.scene.append(Sphere(V3(0.43, 1.8, -8), 0.1, mouth))
r.scene.append(Sphere(V3(0.15, 1.6, -8), 0.1, mouth))
r.scene.append(Sphere(V3(-0.15, 1.6, -8), 0.1, mouth))
r.scene.append(Sphere(V3(-0.43, 1.8, -8), 0.1, mouth))

r.scene.append(Sphere(V3(0.40, 2.5, -8), 0.12, button))
r.scene.append(Sphere(V3(-0.40, 2.5, -8), 0.12, button))

r.scene.append(Sphere(V3(0, 0.5, -6), 0.26, button))