// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi // ====================================================================== // CÂMERA camera { location < 75.00, 30.00, 60.00 > // Posição do observador. right -1*x // Largura RELATIVA da imagem. up 0.75*y // Altura RELATIVA da imagem. sky y // Qual direção é "para cima"? look_at < 35.00, 10.00, 0.00 > // Para onde a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source { 4 * < 20.0, 0.0, 0.0 > // Posição da lâmpada. color rgb 1 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { < 31.5, 40.0, 60.0 > // Posição da lâmpada. color rgb 2.0 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } //light_source { // 1 * < 0.0, 5.0, 20.0 > // Posição da lâmpada. // color rgb 0.6 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. //} // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare cor_dourada = < 0.80, 0.80, 0.05 >; #declare tinta_dourada = texture { pigment { rgb cor_dourada } finish { diffuse 0.05 specular 0.20 roughness 0.05 ambient 0.05 reflection cor_dourada } } #declare cor_base = texture { pigment { color rgb < 0.10, 0.70, 0.20 > } } #declare cor_interna = texture { pigment { color rgb < 0.75, 0.85, 0.55 > } } #declare cor_escada = texture { pigment { color rgb < 0.75, 0.15, 0.15 > } } #declare chao = plane { y, 0 texture { pigment { checker <0.20, 0.20, 0.05>, <0.10, 0.10, 0.25> } finish {ambient 0.1 diffuse 0.9} scale 3 } } #declare bloco_salas = box { <0.00, 0.00, 0.00>, <12.00, 3.00, 12.00> texture {cor_base} } #declare janelas_bloco = union { // Janelas de frente e fundo box { <1.00, 1.10, 13.00>, <3.00, 2.60, -1.00> texture {cor_interna} } box { <5.00, 1.10, 13.00>, <7.00, 2.60, -1.00> texture {cor_interna} } box { <9.00, 1.10, 13.00>, <11.00, 2.60, -1.00> texture {cor_interna} } // Janelas laterais box { <13.00, 1.10, 1.00>, <-1.00, 2.60, 3.00> texture {cor_interna} } box { <13.00, 1.10, 5.00>, <-1.00, 2.60, 7.00> texture {cor_interna} } box { <13.00, 1.10, 9.00>, <-1.00, 2.60, 11.00> texture {cor_interna} } } #declare bloco_escada = box { <12.00, 0.00, 0.00>, <17.00, 3.00, 14.00> texture {cor_escada} } #declare janela_escada = // Janelas de frente e fundo cylinder { <14.50, 1.70, 14.50>, <14.50, 1.70, -1.00>, 0.5 texture {cor_interna} } #declare abertura_porta = box { <13.00, 0.05, 14.50>, <16.00, 2.30, 0.30> texture {cor_interna} } #declare G = seed(25747); #declare andares = 6; #declare blocos = 4; #declare frente = prism { linear_sweep linear_spline 0, 0.10, 3, <0.00, 0.00>, <6.00, -3 * andares>, <12.00, 0.00> texture { pigment { color } } rotate 90*x translate <0.00, 0.00, 12.00> } #declare predio = union { #declare andar = 0; #while (andar < andares) #declare bloco = 0; #while (bloco < blocos) object {bloco_salas translate } #if (bloco != blocos - 1) object {bloco_escada translate } #end #declare bloco = bloco + 1; #end #declare andar = andar + 1; #end } #declare aberturas_janelas = union { #declare andar = 0; #while (andar < andares) #declare bloco = 0; #while (bloco < blocos) object {janelas_bloco translate } #if (bloco != blocos - 1) object {janela_escada translate } #end #declare bloco = bloco + 1; #end #declare andar = andar + 1; #end } #declare fachada = union { #declare bloco = 0; #while (bloco < blocos) object {frente translate } #declare bloco = bloco + 1; #end } #declare aberturas_portas = union { #declare bloco = 0; #while (bloco < blocos - 1) object {abertura_porta translate } #declare bloco = bloco + 1; #end } // A cena difference { union { object {chao} object {predio} object {fachada} } union { object {aberturas_janelas} object {aberturas_portas} } }