//Eduardo Hideki Tanaka RA: 970563 // Setimo Exercicio - MC930 background{ color rgb < 0.22, 0.20, 0.82 > } light_source { < 129.00, 37.00, -40.00 > color rgb < 1.20, 1.20, 1.20 > } camera { location < 128.00, 36.00, -20.00 > look_at < 30.00, 5.00, 2.00 > } //plano que servira de base plane { y, 0 texture { pigment { checker color rgb <0.1, 0.85, 0.3> color rgb <0.2, 0.9, 0.2> } } } //plano que da a impressao do ceu plane { y, 500 texture { pigment { color rgb <0.22, 0.3, 0.82> } finish { ambient 1 diffuse 0} } texture { pigment { bozo turbulence .5 color_map { [0 color rgb <1, 1, 1>] [1 color rgb <1, 1, 1> filter 1] } } finish { ambient 1 diffuse 0 } scale <1000, 250, 250> rotate <5, 45, 0> } } //constantes #declare r = 3; //janelas na fachada #declare n = 6; //numero de andares + terreo #declare s = 2; //janelas laterais //#declare q = 4; //numero de ruas N-S #declare p = 4; //numero de ruas L-O //para gerar numeros aleatorios #declare g = seed(pi); #declare tinta_cinza = texture { pigment { color rgb < 0.85, 0.85, 0.85 > } finish { diffuse 0.5 specular 0.5 ambient 0.1 phong 1} } #declare tinta_preta = texture { pigment { color rgb < 0.00, 0.00, 0.10 > } finish { diffuse 0.9 ambient 0.1 } } #declare andar = box { <-5.5, 0, -4>, <5.5, 2, 4> texture { tinta_cinza } } #declare janela = box { <-3.5, 1, -4>, <-2.5, 2, -3.9> texture { tinta_preta } } #declare janelaL = box { <-5.5, 1, -3>, <-5.4, 2, -2> texture { tinta_preta } } #declare porta = box { <-1.5, 0, -4>, <1.5, 1.2, -3.9> texture { tinta_preta } } #declare terreo = difference { object { andar } object { porta } } #declare andar_janelado = difference { object { andar } #declare i = 0; #while (i } object { janela translate <2.5*i, 0, 3.99> } #declare i = i+1; #end //end while #declare j = 1; #while (j <= s) object { janelaL translate <0, 0, j*2> } object { janelaL translate <10.99, 0, j*2> } #declare j = j + 1; #end //end while } //este e o codigo que define um predio #declare predio = union { #declare ii = 1; #declare altura = 600*rand(g); #while (ii } #declare ii = ii+1; #end // end while object { andar scale <1, 0.5, 1> translate <0, 2*ii, 0> } object { terreo } } //finalmente, a cena union { #declare k = 0; #while (k } #declare ii = ii+1; #end // end while 2 object { andar scale <1, 0.5, 1> translate <18*j, 2*ii, k*12> } object { terreo translate <18*j, 0, k*12> } #declare j = j+1; #end //end while 1 #declare k = k+1; #end //end while 0 }