// Fabio de Souza Azevedo - RA 952215 // 2021-09-15 // // TP04 // Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2021-12-09 09:44:08 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 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_vidro = 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_verde_escuro = texture{ pigment { color rgb <0, 0.5, 0> } //finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_verde_claro = texture{ pigment { color rgb <0, 1.0, 0> } //finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #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 } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #declare s1 = seed(0); #declare s2 = seed(235); #declare s3 = seed(728); #declare fator = 0.794;//0.8; #macro folha(p) // "folha redonda" sphere { p, 0.15} texture { tx_verde_claro } #end #macro folha_q(p) // "folha quadrada" #local r = 4*0.15; //sphere { p, 0.15} box { , } texture { tx_verde_claro } #end #macro elemento_galho(p1, p2, r) union { cylinder { p1, p2, r } sphere { p2, r} } texture { tx_verde_escuro } #end #macro galho_alien(p, a, k) // {p} = Um ponto, o centro da base do galho. // {a} = Altura máxima da árvore. // {k} = Número máximo de bifurcações consecutivas desde a base do tronco // até uma folha qualquer. union { #local L = a*0.3; // comprimento máximo de cada trecho #local r = 0.3*L; #local p1 = ; object { elemento_galho(p, p1, r) } #if (k > 1) #local galho1 = object { galho_alien(<0,0,0>, a-L, k-1) } #local galho2 = object { galho_alien(<0,0,0>, a-L, k-1) } object { galho1 rotate 20*z rotate 30*x translate p1 } object { galho2 rotate 30*z rotate -20*x translate p1 } #else object { folha_q(p1) } #end texture { tx_verde_escuro } } #end #macro arvore(P,A,K) object { galho_alien(P, A, K) } #end #declare meio_lado_quadrado = 10.0; #declare s4 = seed(952215); // Meu RA 8-) #declare altura = 30.0; #macro plantacao(N,A,K) union{ #local i = 0; #while (i < N) #if (sin(15*i*i) > -0.2) #local qq = meio_lado_quadrado; object { arvore(, A, K) translate A*i*y } // Nao estou usando K. #end #local i = i+1; #end } #end #include "eixos.inc" // Aqui está a cena, finalmente: #declare lins_aliens = 3;//30; #declare cols_aliens = 2;//20; #declare lins_terra = 2;//25; #declare cols_terra = 2;//25; //object { eixos(8.0) } // object { arvore(<1.0, 1.0, 0.0>, 20, 7) } #local NP = 4; object { plantacao(NP,altura,7) } #include "camlight.inc" // #declare centro_cena = <2*lins_aliens, 1.2*cols_aliens, 7.5>; #declare centro_cena = < altura/2, NP*altura/2, 15.00 >; // #declare raio_cena = 8.0*sqrt(lins_terra*lins_terra + cols_terra*cols_terra); // #declare raio_cena = 75.0; #declare dir_camera = < 14.00, 7.00, 4.00 >; #declare dist_camera = 8*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)