//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)
}