// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2021-12-09 05:23:29 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 < 0.54, 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 } } // ====================================================================== // DESCRI��O DA CENA #include "eixos.inc" #macro alien(raio) union{ cylinder{ < raio/3, 0, 0 >, < raio/3, 0, -raio/2 >, raio/4 texture{tx_fosca} } cylinder{ < -raio/3, 0, 0 >, < -raio/3, 0, -raio/2 >, raio/4 texture{tx_fosca} } cone{<0, 0, 0>, raio, <0, 0, 2*raio>, 0 texture{tx_fosca} } sphere{ < 0, -raio/2, raio >, raio/4 } texture{tx_espelho} } #end #macro soldier(side) union{ box{<-side, -side, -side>, texture{tx_plastico} } cylinder{<0,0,0>, <0, 3*side, side>, side/4 texture{tx_plastico} } cone{<0, 3*side, side>, side/3, <0, 4*side, 2*side>, 0 texture{tx_fosca} } } #end #macro exercitoAlien(I,J,S) union{ #local i = -I/2; #while (i < I/2) #local j = 0; #while (j < J) #if(sin(i*j) > 0.1) object{alien(S) translate } #end #local j = j+1; #end #local i = i+1; #end } #end #macro exercitoSoldier(I,J,S) union{ #local i = -I/2; #while (i < I/2) #local j = 0; #while (j < J/2) #if(sin(i*j) < 0.1) object{soldier(S) translate } #end #local j = j+1; #end #local i = i+1; #end } #end // Aqui est� a cena, finalmente: union{ object{exercitoAlien(24,8, 0.45)} object{exercitoSoldier(16,32, 0.18)} } #include "camlight.inc" #declare centro_cena = < -2, -2, 0.8 >; // sphere{ centro_cena, 1 texture{ tx_fosca } } object{ eixos(1) } #declare raio_cena = 18; #declare dir_camera = < 20, -20, 10 >; #declare dist_camera = 10*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)