// ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_fosca_marrom = texture{ pigment{ color rgb < 0.361, 0.2, 0.09 > } } #declare tx_xadrez_verde = texture{ pigment{ checker color rgb < 0.10, 0.62, 0.10 >, color rgb < 0.20, 0.97, 0.20 > } finish{ diffuse 0.9 ambient 0.1 } scale 0.5 } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #declare chao = box { <-10,-10,-4.1> <10,10,-4> texture {tx_xadrez_verde}} #declare dinheiro = box{ <-0.4,0,0>, < 0.4, 0.1, 2> texture{ tx_xadrez_verde } } //somente o principal tem base maior //Para definir as alturas e bases, primeiro defini como queria que ficassem //e depois descobri uma fórmula que funcionasse no intervalo que eu desejava #macro tronco (n, principal_bool, intensidade_marrom) cone { <0, 0, -4*principal_bool>, n*n/9, <0, 0, n*n*0.65>, n*n/20 texture{ tx_fosca_marrom finish{ diffuse intensidade_marrom ambient 1 }} } #end #macro arvore (n, principal_bool, intensidade_marrom) #if (n=2) union { object { tronco (2, 0, intensidade_marrom-0.3) } object { dinheiro translate <0,0,2.5>} } #else union { object { tronco (n, principal_bool, intensidade_marrom) } //posição é a altura do tronco atual, menos um tamanho adequado para encaixar a base da menor, no tronco da maior object { arvore (n-1, 0, intensidade_marrom-0.3) rotate <90,0,30> translate <0,0, (n*n*0.6 - ((n-1)*(n-1)/8))> } object { arvore (n-1, 0, intensidade_marrom-0.3) rotate <270,0,60> translate <0,0, (n*n*0.6 - ((n-1)*(n-1)/4))> } object { arvore (n-1, 0, intensidade_marrom-0.3) rotate <90,0,90> translate <0,0, (n*n*0.6 - ((n-1)*(n-1)/2))> } } #end #end #include "eixos.inc" // Aqui está a cena, finalmente: union { object { chao } object { arvore (4, 1, 1) } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 5.00 >; #declare raio_cena = 20.0; #declare dir_camera = < 7.00, 5.00, 2.00 >; #declare dist_camera = 160.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)