//Eduardo Hideki Tanaka RA: 970563 // Projeto de MC930: Predio da DAC background{ color rgb < 0.22, 0.20, 0.82 > } light_source { < -120.00, 47.00, -60.00 > color rgb < 1.00, 1.00, 1.00 > } camera { location < -128.00, 36.00, -90.00 > look_at < -153.00, 15.00, -53.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 w = 3; //numero de janelas em cada coluna do predio #declare c = 8; //numero de "colunas" em cada lado #declare cm = 2; //numero de "colunas do meio" #declare a = 2; //numero de andares //primeiro, declaracao de texturas #declare tinta_branca = texture { pigment { color rgb <1.00, 1.00, 1.00> } finish { diffuse 0.6 specular 0.4 ambient 0.1 phong 1 } } #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 tinta_vermelha = texture { pigment { color rgb <0.90, 0.46, 0.40> } finish { diffuse 0.9 specular 0.4 ambient 0.1 } normal { dents 0.15 scale 0.3 } } //agora, as declaracoes de pequenas partes do predio #declare ladoB = box { <-1, -5, -1>, <1, 5, 1> texture { tinta_branca } } #declare ladoT = box { <-3, -5, -1>, <3, 5, 1> texture { tinta_vermelha } } #declare ladoJ = box { <-5, -5, -1>, <5, 5, 1> texture { tinta_cinza } } #declare blocoS = box { <-104, -15, -40>, <104, 15, 40> texture { tinta_branca } } //isto equivale a 1/3 da fachada de uma coluna #declare fachada13 = union { object { ladoB translate <1, 5, 5> } object { ladoT translate <7, 5, 5> } object { ladoB translate <14, 5, 5> } object { ladoJ translate <21, 5, 5> } } //aqui temos a fachada inteira de um lado do predio #declare fachadaL = union { #declare ii = 1; #while (ii<=c) object { fachada13 translate <-26*ii, 0, 0> } #declare ii = ii+1; #end //end while } #declare parteE = merge { merge { #declare ii = 0; #while (ii } #declare ii = ii+1; #end //end while } object { blocoS translate <-104, 15, 45> } } //uma cena de testes e mostrada abaixo object { parteE }