// Last edited on 2004-01-23 12:25:16 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray #include "colors.inc" #declare pi1 = 3.1415926535897932384626; // ====================================================================== #declare ctr = < 0.00, 0.00, 0.00 >; #declare camDir = < 8.00, 30.00, -3.00 >; camera { location ctr + 1.00*camDir right -1.20*x up 0.90*y sky z look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 10 * < +50.0, +30.0, +50.0 > color rgb 1.2 * < 1.00, 1.00, 1.00 > } light_source { <0,0,0> color rgb 0.5*< 1.00, 1.00, 1.00 > } light_source { 10 * < +50.0, 20.0, +10.0 > color rgb 0.8 * < 1.00, 1.00, 1.00 > rotate 180*clock*z } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare vermelho = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare cinza = texture { pigment { color rgb < 0.90, 0.90, 0.90 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare gera_cor = seed(1234); #declare gera_junta = seed(5678); #declare noh = sphere { < 0.00, 0.00, 0.00 >, 0.80 texture { vermelho } } #declare pau1 = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 3.00 >, 0.2 texture { cinza } } #declare pau2 = cylinder { < 0.00, 0.00, 0.00 >, < 5.50, 0.00, 0.00 >, 0.2 texture { cinza } } #declare pau3 = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, -5.00, 0.00 >, 0.2 texture { cinza } } #declare pacote1 = sphere { <0.0, 0.0, 0.00>, 0.5 } #declare parte= union{ object {noh} object {pau1} object {pau2} object {noh translate <0.0, 0.0, 2.5>} object {pau2 translate <0.0, 0.0, 2.5>} object {pau3} object {pau3 translate <0.0, 0.0, 2.5>} translate <-200.0, 0.0, 0.0> } // Aqui está a cena, finalmente: #declare s_cor1 = seed(1234); #declare s_cor2 = seed(1546); #declare s_cor3 = seed(67877); #declare s_pos1 = seed(2355); #declare s_pos2 = seed(34235); #declare s_pos3 = seed(5464554); #declare s_pos1b = seed(67867); #declare s_pos2b = seed(2135); #declare s_pos3b = seed(21435); #declare s_prob1 = seed(453434); #declare s_prob2 = seed(434664); #declare s_prob3 = seed(79685); #declare s_prob1b = seed(456542); #declare s_prob2b = seed(8954534); #declare s_prob3b = seed(324566); #declare j=0; #while (j<50) #declare i=1; #while (i<50) #declare R2 = rand(s_cor2); #declare G2 = rand(s_cor2); #declare B2 = rand(s_cor2); #declare R1 = rand(s_cor1); #declare G1 = rand(s_cor1); #declare B1 = rand(s_cor1); #declare pos1 = rand(s_pos1); #declare pos2 = rand(s_pos2); #declare pos3 = rand(s_pos3); #declare pos1b = rand(s_pos1b); #declare pos2b = rand(s_pos2b); #declare pos3b = rand(s_pos3b); #declare prob1 = rand(s_prob1); #declare prob2 = rand(s_prob2); #declare prob3 = rand(s_prob3); #declare prob1b = rand(s_prob1b); #declare prob2b = rand(s_prob2b); #declare prob3b = rand(s_prob3b); union{ object {noh} #if (prob1<0.4) #if (pos1<0.3) object {pacote1 translate <0,0,pos1*10> translate <0,0,clock*2> pigment{color rgb }} object {pau1} #else object {pau1} #end #else object {pau1} #end #if (prob2<0.7) #if (pos2<0.55) object {pacote1 translate translate pigment{color rgb }} object {pau2} #else object {pau2} #end #else object {pau2} #end object {noh translate <0.0, 0.0, 2.5>} #if (prob2b<0.7) #if (pos2b<0.55) object {pacote1 translate translate <-clock*3,0,0> pigment{color rgb }} object {pau2 translate <0.0, 0.0, 2.5>} #else object {pau2 translate <0.0, 0.0, 2.5>} #end #else object {pau2 translate <0.0, 0.0, 2.5>} #end #if (prob3<0.5) #if (pos3<0.5) object {pacote1 translate <0,-pos3*10,0> translate <0, -clock*2, 0> pigment{color rgb }} object {pau3} #else object {pau3} #end #else object {pau3} #end object {pau3 translate <0.0, 0.0, 2.5>} translate <-150.0, 0.0, 0.0> translate } #declare i=i+1; #end #declare j=j+1; #end #declare j=0; #while (j<50) #declare i=1; #while (i<50) #declare R2 = rand(s_cor2); #declare G2 = rand(s_cor2); #declare B2 = rand(s_cor2); #declare R1 = rand(s_cor1); #declare G1 = rand(s_cor1); #declare B1 = rand(s_cor1); #declare pos1 = rand(s_pos1); #declare pos2 = rand(s_pos2); #declare pos3 = rand(s_pos3); #declare pos1b = rand(s_pos1b); #declare pos2b = rand(s_pos2b); #declare pos3b = rand(s_pos3b); #declare prob1 = rand(s_prob1); #declare prob2 = rand(s_prob2); #declare prob3 = rand(s_prob3); #declare prob1b = rand(s_prob1b); #declare prob2b = rand(s_prob2b); #declare prob3b = rand(s_prob3b); union{ object {noh} #if (prob1<0.4) #if (pos1<0.3) object {pacote1 translate <0,0,pos1*10> translate <0,0,-clock*2> pigment{color rgb }} object {pau1} #else object {pau1} #end #else object {pau1} #end #if (prob2<0.7) #if (pos2<0.55) object {pacote1 translate translate <-clock*3,0,0> pigment{color rgb }} object {pau2} #else object {pau2} #end #else object {pau2} #end object {noh translate <0.0, 0.0, 2.5>} #if (prob2b<0.7) #if (pos2b<0.55) object {pacote1 translate translate pigment{color rgb }} object {pau2 translate <0.0, 0.0, 2.5>} #else object {pau2 translate <0.0, 0.0, 2.5>} #end #else object {pau2 translate <0.0, 0.0, 2.5>} #end #if (prob3<0.5) #if (pos3<0.5) object {pacote1 translate <0,-pos3*10,0> translate <0,-clock*2,0> pigment{color rgb }} object {pau3} #else object {pau3} #end #else object {pau3} #end object {pau3 translate <0.0, 0.0, 2.5>} translate <-150.0, 0.0, 0.0> translate } #declare i=i+1; #end #declare j=j+1; #end