// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare roleta = seed(059748); #declare tx_ouro = texture{ pigment{ color rgb < 0.8, 0.8, 0.8> } finish{ ambient 0.1 diffuse 0.3 specular 0.1 reflection < 1, 0.85, 0.4 > } } #declare tx_mar = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_tronco = texture{ pigment{ color rgb < 0.54, 0.47, 0.32> } finish{ ambient 0.1 diffuse 1 specular 0.1 reflection 0.1 } } #declare tx_joia = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ ambient 0.1 diffuse 0.1 specular 0.1 reflection < 1, 0.85, 0.4 > } } #declare tx_folha = texture{ pigment{ color rgb < 0.58, 0.8, 0.19> } finish{ ambient 0.1 diffuse 1 specular 0.1 reflection 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #macro joias (raio_joia) union{ #declare joia = sphere{ < 0,0,0 >, raio_joia } object {joia texture{ tx_joia } interior{ ior 1.5 } } } #end #macro folhas (mult) union{ #local raio_folha = 0.2; #declare folha = sphere{ < 0,0,0 >, raio_folha } #local mult = 6*mult; #local j = 0; #while(j<6) object {folha texture{ tx_folha } interior{ ior 1.5 } translate < (int(rand(roleta)*mult)), raio_folha*(int(rand(roleta)*mult)), raio_folha*(int(rand(roleta)*(mult+2))) > } object {folha texture{ tx_folha } interior{ ior 1.5 } translate < (int(rand(roleta)*-mult)), raio_folha*(int(rand(roleta)*-mult)), 0 > } #local j = j+1; #end } #end #macro galhos (tamanho, raio) union{ #declare galho = cylinder{ < 0.0, 0.0, 0.0 >, < 0.0, 0.0, tamanho >, raio texture{ tx_tronco } } object {galho} } #end #macro arvore(pos_x, pos_y, pos_z, tamanho, raio, divisoes, angulo, ajuste_angulo) union{ #if(divisoes > 0) #local novo_angulo = angulo/1.2; #local novo_tamanho = tamanho/1.5; #local novo_raio = raio/1.6; #local new_z = pos_z + novo_tamanho*cos(radians(angulo+ajuste_angulo)); #local new_y = pos_y + novo_tamanho*sin(radians(angulo+ajuste_angulo)); #local new_x = pos_x - novo_tamanho*sin(radians(angulo+ajuste_angulo)); arvore(new_x, new_y, new_z, novo_tamanho, novo_raio, (divisoes-1), novo_angulo, (angulo+ajuste_angulo)) arvore(-new_x, -new_y, new_z, novo_tamanho, novo_raio, (divisoes-1), novo_angulo, -(angulo+ajuste_angulo)) object{ galhos(novo_tamanho, novo_raio) rotate< angulo-ajuste_angulo , 0, 0 > translate< 0, pos_y, pos_z > } object{ galhos(novo_tamanho, novo_raio) rotate< -(angulo+ajuste_angulo), 0, 0 > translate< 0, pos_y, pos_z > } object{ galhos(novo_tamanho, novo_raio) rotate< 0, angulo-ajuste_angulo, 0 > translate< pos_x, 0, pos_z > } object{ galhos(novo_tamanho, novo_raio) rotate< 0, -(angulo+ajuste_angulo), 0 > translate< pos_x, 0, pos_z > } object{ folhas(novo_raio) translate< 0, pos_y, pos_z > } object{ folhas(novo_raio) translate< pos_x, 0, pos_z > } #if(divisoes > 1) object{ joias(0.1) translate< 0, pos_y, (pos_z+1) > } object{ joias(0.1) translate< pos_x, 0, (pos_z+1) > } #end #end } #end #declare raio = 2.000; #declare tronco = cylinder{ < 0.0, 0.0, 0.0 >, < 0.0, 0.0, 3.0 >, 0.2 texture{ tx_tronco } } #declare ilha = cylinder{ < 0.0, 0.0, -0.5 >, < 0.0, 0.0, +0.5 >, 7 texture{ tx_ouro } } #declare mar = box{ <-60,-60,-1>, <+60,+60,0> } #include "eixos.inc" union{ object{ eixos(3.00) } object{ ilha texture{ tx_ouro } interior{ ior 1.5 } } object{ mar translate < 0,0,0 > texture{ tx_mar } } object{ joias(0.1) translate < 0,1,2.5 > interior{ ior 1.5 } } object{ tronco } arvore( 0, 0, 3, 3, 0.2, 4, 60, 0 ) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 20, 40, 10 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)