// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2010-03-04 15:44:01 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0, 0, 0 > } #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.50, 0.00, 0.80 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca2 = texture{ pigment{ color rgb < 1, 1, 1 > } 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_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 } // MACROS #macro soldier ( tx1, soldier_x, soldier_y, soldier_z) union { // HEAD sphere { < 0 + soldier_x, 20 + soldier_y, 0 + soldier_z>, 2.00 texture { tx1 } } // NECK box { < 0.2 + soldier_x, 16 + soldier_y, 0.5 + soldier_z>, <-0.2 + soldier_x, 18 + soldier_y, -0.5 + soldier_z> texture { tx1 } } // BODY box { <-3.0 + soldier_x, 8 + soldier_y, -2.0 + soldier_z>, <3.0 + soldier_x, 16 + soldier_y, 2.0 + soldier_z> texture { tx1 } } // LEG 1 box { <-3.0 + soldier_x, 0 + soldier_y, -2.0 + soldier_z>, <-1.0 + soldier_x, 8 + soldier_y, 2.0 + soldier_z> texture { tx1 } } // LEG 2 box { <3.0 + soldier_x, 0 + soldier_y, -2.0 + soldier_z>, <1.0 + soldier_x, 8 + soldier_y, 2.0 + soldier_z> texture { tx1 } } // ARM 1 box { <4.5 + soldier_x, 8 + soldier_y, -2.0 + soldier_z>, <3.5 + soldier_x, 16 + soldier_y, 2.0 + soldier_z> texture { tx1 } } // ARM 2 box { <-4.5 + soldier_x, 8 + soldier_y, -2.0 + soldier_z>, <-3.5 + soldier_x, 16 + soldier_y, 2.0 + soldier_z> texture { tx1 } } } #end #macro platoon (lines, coloumns) union { #declare distance_x = 10.5; #declare distance_z = 5; #declare j = 0; #while ( j < coloumns) #declare i = 0; #while ( i < lines) #if ( (i = 0 & j = 0) | (i = lines-1 & j = coloumns-1) | (i = lines-1 & j = 0) | (i = 0 & j = coloumns-1) | (i = (lines-1)/2 & j = (coloumns-1)/2)) object { soldier (tx_xadrez, +(distance_x * i), 0, (-distance_z *j))} #else object { soldier (tx_fosca, +(distance_x * i), 0, (-distance_z *j))} #end #declare i = i + 1; #end #declare j = j + 1; #end } #end // ====================================================================== // DESCRIÇÃO DA CENA platoon(5, 7) #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 60.0; #declare dir_camera = < 0.0, 6.0, -60.00 >; #declare dist_camera = -15.0; #declare intens_luz = 2.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)