// Last edited on DATE TIME by stolfi // TP07 - 28/10/03 #include "colors.inc" // ====================================================================== #declare ctr = < 0.00, 0.00, 0.00 >; #declare camDir = < 0.00, -20.00, 5.00 >; camera { location ctr + 0.80*camDir right -1.00*x up 0.75*y sky z look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 10 * < +50.0, -30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, 10.0, -50.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 20*< 10, 12.00, -15.00 > color rgb 1.2*< 1.00, 1.00, 1.00 > } light_source { 20*< -30, 3.00, -5.00 > color rgb 0.8*< 1.00, 1.00, 1.00 > } light_source { 20*< -10, 4.00, -15.00 > color rgb 1.2*< 1.00, 1.00, 1.00 > } // ====================================================================== // DESCRIÇÃO DA CENA //background{ color rgb < 0.85, 0.90, 0.95 > } background{ color rgb < 0.90, 0.90, 0.90 > } #declare base = 4; #declare chao = plane { z, -base pigment {color rgb <1.0,1.0,0.5> } } #declare tinta_perna = texture { pigment { color rgb < 0.10, 0.80, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_cinza = texture { pigment { Gray75 } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_vermelha = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare raio_corpo = base; #declare corpo = difference { sphere { < 0.00, 0.00, 0.00>, raio_corpo // scale < 1.5, 0.4, 1> } box { < -raio_corpo-1.50, -raio_corpo-1.50, 0.00>, < raio_corpo+1.50, raio_corpo+1.50, raio_corpo+1.50 > } texture { tinta_perna } } object { corpo } object { chao } #declare fonte_a = seed(476); #declare fonte_b = seed(4123); #declare fonte_c = seed(4876); #declare fonte_d = seed(24234); #declare pos_x = -raio_corpo+0.5; #declare compr_1 = 0.50; #declare compr_2 = 1.00; #declare compr_3 = 1.00; #declare compr_4 = 0.50; #declare raio = 0.2; #declare maxi = 8; #declare n = 1; #while(n <= maxi) #declare a = -60 * rand(fonte_a); #declare b = -60 * rand(fonte_b); #declare c = -60 * rand(fonte_c); #declare d = -60 * rand(fonte_d); #declare perna_4 = union{ cylinder { < 0.00, 0.00, 0.00 >, < compr_4, 0.00, 0.00 >, raio } sphere { < compr_4, 0.00, 0.00 >, raio } texture { tinta_perna } } #declare perna_3 = union{ cylinder { < 0.00, 0.00, 0.00 >, < compr_3, 0.00, 0.00 >, raio } sphere { < compr_3, 0.00, 0.00 >, raio } object { perna_4 rotate d*y translate < compr_3, 0.00, 0.00> } texture { tinta_perna } } #declare perna_2 = union{ cylinder { < 0.00, 0.00, 0.00 >, < compr_2, 0.00, 0.00 >, raio } sphere { < compr_2, 0.00, 0.00 >, raio } object { perna_3 rotate c*y translate < compr_2, 0.00, 0.00> } texture { tinta_perna } } #declare perna_1 = union{ sphere { < 0.00, 0.00, 0.00 >, raio } cylinder { < 0.00, 0.00, 0.00 >, < compr_1, 0.00, 0.00 >, raio } sphere { < compr_1, 0.00, 0.00 >, raio } object { perna_2 rotate b*y translate < compr_1, 0.00, 0.00> } texture { tinta_perna } } #if (n <= maxi/2) object { perna_1 rotate a*y translate } #declare pos_x = pos_x + (raio_corpo/(maxi/4)); #if (n = maxi/2) #declare pos_x = -raio_corpo+0.5; #end #else object { perna_1 rotate a*y scale<-1,0,0> translate } #declare pos_x = pos_x + (raio_corpo/(maxi/4)); #end #declare n = n + 1; #end