//Dependencias #include "colors.inc" //Iluminação light_source { <15, 15, -15> color rgb <1, 1, 1> } light_source { <10, 10, -10> color rgb <1, 1, 1> } // Observador camera { location <0,6,17> right -0.75*x // Largura RELATIVA da imagem. up 1*y // Altura RELATIVA da imagem. sky y // Qual direção é "para cima"? look_at <0, 0, 0> } //Fundo background{ color rgb < 1, 1, 1 > } //Cores #declare cor_metalico = <0.4, 0.31, 0.25>; #declare cor_cristal = <0.98, 0.98, 0.98, 0.9>; #declare amarelo = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } //Texturas #declare tx_metalico = texture { pigment { rgb cor_metalico } finish { ambient 0.05 diffuse 0.05 reflection cor_metalico specular 0.20 roughness 0.05 } } #declare tx_cristal = texture { finish { ambient 0 diffuse 0 reflection 0.5 refraction 0.85 ior 1.5 phong 0.3 phong_size 60 specular 1 roughness 0.001 } pigment { color rgbf cor_cristal filter 1} } /*********************Auxiliar******************/ #declare eixos = union { // x axis cylinder { <-50, 0, 0>, <50, 0, 0>, 0.1 pigment { color rgb <1, 0, 0> } } // y axis cylinder { <0, -50, 0>, <0, 50, 0>, 0.1 pigment { color rgb <0, 1, 0> } } //z axis cylinder { <0, 0, -50>, <0, 0, 50>, 0.1 pigment { color rgb <0, 0, 1> } } } /***************************************/ /////////////Macros///////////////////// #macro cria_arvore(n, a, b, c) #if (n > 1) object { sphere { , 1} pigment {Magenta} } object { sphere { , 1} translate pigment {Magenta} } object { cylinder {, , 0.3} translate <0,-0.5,0> rotate -45*z translate <(n-1)*-a, (n-1)*-b,0> pigment {Magenta} } object { sphere { , 1} translate pigment {Magenta} } object { cylinder {, , 0.3} translate <0,-0.5,0> rotate 45*z translate <(n-1)*a, (n-1)*-b,0> pigment {Magenta} } cria_arvore(n-1,a-2.6,b-2.5,c) cria_arvore(n-1,a+2.6,b-2.5,c) #end #end //////////////////////////////////////// // Aqui está a cena, finalmente: union { cria_arvore(3, 0,0,0) }