// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi // ====================================================================== // CÂMERA #include "colors.inc" camera { location < 7.00, 8.00, 17 > // Posição do observador. right 0.75*x // Largura RELATIVA da imagem. up -1.00*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 0.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 { 10 * < +50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, -10.0, +10.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare raio = 2.000; #declare amarelo = <1,.8,.1>; #declare verde = <0,1,0>; #declare vermelho = <1,0,0>; #declare tverde = texture { finish { ambient 0.1 diffuse .1 reflection .25 specular 1 roughness .001 } pigment { color verde filter 1 } } #declare tinta_A = texture { pigment { color rgb < 0.10, 0.80, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_B = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_C = texture { pigment { color rgb < 1.00, 0.0, 0.0 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tvermelho = texture { finish { ambient 0.1 diffuse .1 reflection .25 specular 1 roughness .001 } pigment { color vermelho filter 1 } } #declare tx_espelho = texture { pigment { rgb amarelo } finish { ambient .05 diffuse .05 reflection amarelo *.50 specular .20 roughness .05 } } #declare janela_redonda= cylinder { <1.30,1.05,0.7> <1.30,-0.05,0.7> 0.17 texture {tinta_C} } #declare janela_quadrada= box { <1.47,1.05,0.87> <1.13,-0.05,0.53> texture {tinta_C} } #declare roda = cylinder { <1.30,1.05,0.17> <1.30,-0.05,0.17> 0.17 pigment {rgb <0,0,0>} } #declare vagao = union { #declare r=0; #declare gerador = seed ( 1234567); #while (r<4) union { box {<0,0,0> <1.5,1,1> texture {tinta_A}} box {<0,0.45,0> <-0.4,0.55,0.1> texture {tinta_A}} #if (rand (gerador )>=.5) object { janela_redonda translate <-0.35*r,0,0>} #else object { janela_quadrada translate <-0.35*r,0,0>} #end object { roda translate <-0.35*r,0,0>} } #declare r = r+1; #end } #declare primeiro_vagao = union { #declare r=0; #declare gerador = seed ( 1234567); box {<0,0,0> <0.75,1,0.7> texture {tinta_A}} box {<0.75,0,0> <1.5,1,1.2> texture {tinta_A}} box {<0,0.45,0> <-0.4,0.55,0.1> texture {tinta_A}} #while (r<4) object { roda translate <-0.35*r,0,0>} #declare r = r+1; #end #declare r=0; #declare gerador = seed ( 1234567); #while (r<2) #if (rand (gerador )>=.5) object { janela_redonda translate <-0.35*r,0,0>} #else object { janela_quadrada translate <-0.35*r,0,0>} #end #declare r=r+1; #end } #declare trem = union { #declare n=0; #while (n<7) #if (n=0) object {primeiro_vagao translate <-1,4.85,0> rotate -n*19*z} #else object {vagao translate <-1,4.85,0> rotate -n*19*z} #end #declare n = n+1; #end } #declare estacao = box { <0,0,0> <1.5,1,1> pigment {rgb <0,0,0>} } #declare tempo=clock; #if (tempo < 0.3) #declare mult = sin(tempo*pi/3*3)+1; #else (tempo < 0.8) #declare mult = sin(tempo*pi/3*1.8)+1; #end union { lathe { linear_spline 2, <5.0,0>,<5.1,0> rotate 90*x pigment {rgb <0,0,1>} } lathe { linear_spline 2, <5.9,0>,<6.0,0> rotate 90*x pigment {rgb <0,0,1>} } object {estacao translate <-1,6,0> rotate 40*z } object {trem rotate z*mult*400 } }