// Last edited on 2007-07-23 15:19:16 by stolfi // Processed by remove-cam-lights global_settings { max_trace_level 12 } #declare tinta_xadrez = texture { pigment { checker color rgb <0.40,0.50,0.60>, color rgb <0.90,0.95,1.00> } finish { ambient 0.6 diffuse 0.4 } } background{ color rgb < 0.75, 0.80, 0.85 > } #declare cor_Verde = < 0.1, 1.00, 1.00 >; #declare tinta_Verde = texture { finish { ambient 0.1 diffuse 0.1 reflection 0.25 specular 1 roughness 0.001 } pigment { color cor_Verde filter 1 } } #declare cor_Vermelha = < 1.00, 0.10, 0.10 >; #declare tinta_Vermelha = texture { finish { ambient 0.1 diffuse 0.1 reflection 0.25 specular 1 roughness 0.001 } pigment { color cor_Vermelha filter 1 } } #declare cor_esmeralda = <0.2 0.5 0.4>; #declare tex_esmeralda = texture { finish { ambient 0.1 diffuse 0.2 reflection 0.04 specular 1 roughness 0.003 } pigment { color cor_esmeralda filter 1 } } #declare cor_ruby = <0.6 0.4 0.3>; #declare tex_ruby = texture { finish { ambient 0.1 diffuse 0.2 reflection 0.04 specular 1 roughness 0.003 } pigment { color cor_ruby filter 1 } } #declare cor_prata = <0.7 0.7 0.8>; #declare tex_prata = texture { pigment { rgb cor_prata } finish { ambient 0.05 diffuse 0.1 reflection cor_prata specular 0.3 roughness 0.7 } } #declare cor_ouro = < 1.00, 0.80, 0.10 >; #declare tex_ouro = texture { pigment { rgb cor_ouro } finish { ambient 0.05 diffuse 0.05 reflection cor_ouro specular 0.20 roughness 0.05 } } #macro mao() sphere { < 0, 0, 0 >, 1 texture { tex_ouro }} #end #macro antebraco() union{ cylinder { < 0, 0, 0>, < 5, 0, 0 >, 0.75 } object { mao() translate 5*x } texture { tex_prata } } #end #macro braco( alfaBra, alfaAnt ) union { union { cylinder { < 0, 0, 0 >, < 7, 0, 0>, 0.85 } sphere { < 0, 0, 0 >, 0.90 } sphere { < 7, 0, 0 >, 0.90 } texture { tex_ouro } } object { antebraco() rotate alfaAnt*z translate 7*x } rotate z*alfaBra } #end #macro tronco(alfaBra1,alfaBra2,alfaAnt1, alfaAnt2) union { cylinder { < 0, 0, 0 >, < 0, 10, 0 >, 4 } object { cabeca() translate <0, 10, 0> } object { braco(alfaBra1, alfaAnt1) translate < 3.80, 9, 0 > } object { braco(alfaBra2, alfaAnt2) scale <-1,1,1> translate < -3.80,9,0 > } texture { tex_esmeralda } } #end #macro pe() union { cone { < 0, 0, 0 >, 1, < 0, 0, 4>,0 } sphere { < 0, 0, 0 >, 1 } texture { tex_prata } } #end #macro antecoxa() merge { merge { cylinder { < 0, 0, 0 >, < 0, 6, 0 >, 1 } sphere { < 0, 6, 0 >, 1 } texture { tex_ouro } } object { pe() } } #end #macro coxa(alfaAnt) merge { merge { cylinder { < 0, 0, 0 >, < 0, 7, 0 >, 1.5 } sphere { < 0, 7, 0 >, 1.5 } texture { tex_prata } } object { antecoxa() translate y*(-6) rotate x*alfaAnt } } #end #macro bacia(alfaCoxa1, alfaCoxa2, alfaCoxa12, alfaCoxa22, alfaAnt1, alfaAnt2) merge { sphere { < 0, 0, 0 >, 4 texture{ tex_ruby } } object { coxa(alfaAnt1) translate <3, -10, 0> rotate <1*(-alfaCoxa1),1*alfaCoxa12,1>} object { coxa(alfaAnt2) scale <-1,1,1> translate <-3, -10, 0 > rotate <1*(-alfaCoxa2), 1*alfaCoxa22,1 >} } #end #macro cabeca() merge { cylinder { < 0, 0, 0 >, < 0, 2, 0 >, 2.5 } sphere { < 0, 2, 0 >, 2.5 } sphere { < 0, 3.5, 0 >, 3.5 } texture { tex_ruby } } #end #macro boneco(alfaTronco1, alfaTronco2,alfaTronco3, alfaBacia, alfaBra1, alfaBra2, alfaAnt1, alfaAnt2, alfaCoxa1, alfaCoxa2, alfaCoxa12, alfaCoxa22, alfaAntCoxa1, alfaAntCoxa2) merge { object { tronco( alfaBra1, alfaBra2, alfaAnt1, alfaAnt2 ) rotate <1*alfaTronco1, 1*alfaTronco2, 1*alfaTronco3> } object { bacia(alfaCoxa1, alfaCoxa2, alfaCoxa12, alfaCoxa22, alfaAntCoxa1, alfaAntCoxa2) rotate y*alfaBacia} } #end plane { y, 0 texture { tinta_xadrez } } object { boneco(1,15,1,20,40,1,30,1,50,1,90,1,15,60) translate y*20} // Original camera parameters: // #local cam_ctr = <0,20,0> // #local cam_vec = (<0,25,40>-<0,20,0>) // #local cam_sky = y #include "camlight.inc" camlight(<0,20,0>,<10,5,10>,50.0,y,1.0)