// 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" #include "math.inc" camera { location < 0.00, -50.00, 20.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, 20.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. } light_source { < 0, -12.75, 2 > // Posição da lâmpada. color rgb < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { < 0, -12.75, 5.5 > // Posição da lâmpada. color rgb 0.4 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { < 0, -12.75, 4 > // Posição da lâmpada. color rgb 0.5 * < 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 tinta_cinza = texture { pigment { color rgb < 0.85, 0.85, 0.85 > } finish { diffuse 0.5 specular 0.5 roughness 0.05 ambient 0.1 } } #declare Glass = texture { pigment { White filter 1 } finish { diffuse 0.25 specular 0.2 roughness 0.001 ambient 0.1 reflection 0.25 } } #declare DarkGlass = texture { pigment { White filter 0.5 } finish { diffuse 0.25 specular 0.2 roughness 0.001 ambient 0.1 reflection 0.25 } } #declare vertice = texture { pigment { color rgbf < 0.40, 0.40, 0.80, 0.1 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare aresta = texture { pigment { color rgbf < 0.40, 0.80, 0.40, 0.1 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare gerador = seed(9999); // ******** Primeiro, a Macro... ********** // desenha n niveis... #macro Arvore(n,filhos,px,py,pz,min_delta,max_delta) union { sphere { , 0.5 texture { vertice } } #local i=0; #while (i1) #local k = 2/tand(min_delta)*2/filhos; #local delta = min_delta + (max_delta/(filhos-1))*i; #local nx = px + 2/tand(delta); #local ny = py + 0; #local nz = pz + 2; cylinder { , , 0.1 texture { aresta } } #local n_min_delta = atan2d((k-0.5),2); Arvore(n-1,filhos,nx,ny,nz,n_min_delta, 180 - 2*n_min_delta) #declare i=i+1; #end } #end // Aqui está a cena, finalmente: //union { Arvore(6,3,0,0,0,30,120) //}