// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi #include "colors.inc" // ====================================================================== // CÂMERA camera { location <0, 30, -150.00 > // 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. //rotate -30*y } // 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 * < -30.0, 30.0, -30.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA global_settings { assumed_gamma 1.0 } // ---------------------------------------- sky_sphere { pigment { gradient y color_map { [0.0 rgb <0.6,0.7,1.0>] [0.7 rgb <0.0,0.1,0.8>] } } } #declare amarelo = texture { pigment { color rgb < 1.00, 1.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare azulclaro = texture { pigment { color rgb < 0.00, 1.00, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare predio = box { < -10.00, 0.0, -10 >, < 10.00, 35.00, 10.00 > pigment { Blue } } #macro treco(n) union{ #local i=0; #while (i,3} #declare i=i+1; #end } #end #declare objeto= union{ #declare n=5; object{treco(n)} } #macro arvore(nivel,n,posx,posy,posz) union{ #if(n=1) sphere{,2 pigment{Yellow}} object{arvore(nivel,n+1,posx,posy,posz)} #else #if(nivel=n) #local espaco=n*10; #local inicio=posx-(espaco/2); #local delta = espaco/(n-1); #local i=0; #while (i,2 pigment{Yellow}} cylinder{,0.5 pigment {Blue}} #declare i=i+1; #end #else #local espaco=n*10; #local inicio=posx-(espaco/2); #if(n>1) #local delta = espaco/(n-1); #else #local delta = 0; #end #local j=0; #while (j,2 pigment{Yellow}} cylinder{,0.5 pigment {Blue}} object{arvore(nivel,n+1,inicio+j*delta,posy-10,posz)} #declare j=j+1; #end #end #end } #end // ---------------------------------------- plane { y, -1 pigment { color rgb <0.7,0.5,0.3> } } object{arvore(4,1,0,50,0)}