// Last edited on 2007-07-23 23:34:18 by stolfi // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare cinza = texture { pigment { color rgb < 0.50, 0.50, 0.50 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.05 } } #declare branco = texture { pigment { color rgb < 0.90, 0.90, 0.90 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.05 } } #declare vermelho = texture { pigment { color rgb < 1.00, 0.1, 0.1 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 reflection 0.05 } } #declare corpo = difference { union { sphere { <+0, +0, +0 >, 1 } cone { <+0, +0, +0 >, 1.2 <+0, +3, -0.5 >, 0.4 } cone { <+0, +2.8, -0.5 >, 0.4 <+0, +3.5, -0.5 >, 0.8 } cylinder { <+0, +3.2, -0.5 >, <+0, +10, -0.5 >, 0.8 } } difference { cylinder { <+0, -8, 0 >, <+0, 12, 0 >, 10 } cylinder { <+0, -8, 0 >, <+0, 2.8, 0 >, 1 } cone { <+0, +2.8, -0.45 >, 0.6 <+0, +4, -0.8 >, 0.1 } } } #declare olho = union { sphere { <+0.25, +3.5, -0.45 >, 0.08 } sphere { <-0.25, +3.5, -0.45 >, 0.08 } } #macro pe () intersection{ union{ cone { <+0, 0, 0 >, 0.2 <+0, 1, -0.15 >, 0.05 } sphere{ <+0, 0, 0 >, 0.2 } } box { <2, 2, 2 > <-2, -2, -0.15 > } } #end #macro subperna(i) union{ sphere{ <+0, 0, 0 >, 0.3 } cone{ <+0, 0, 0 >, 0.3 <+0, 0, -1.5 >, 0.2 } object {pe() rotate i*x translate -1.5*z } } #end #macro perna (i,j,k) union{ sphere{ <+0, 0, 0 >, 0.5 } cone{ <+0, 0, 0 >, 0.5 <+0, 1, 0 >, 0.3 } object {subperna(i) rotate j*x translate 1*y } rotate k*x } #end #macro mao() intersection{ union{ cone { <+0, 0, 0 >, 0.15 <+0, 0.8, -0.1 >, 0.04 } sphere{ <+0, 0, 0 >, 0.15 } } box { <2, 2, 2 > <-2, -2, -0.1 > } } #end #macro antebraco(i) union{ sphere{ <+0, 0, 0 >, 0.2 } cone{ <+0, 0, 0 >, 0.2 <+0, 0, -1 >, 0.15 } object {mao() rotate i*x translate -1*z } } #end #macro braco(k,i,j) union{ sphere{ <+0, 0, 0 >, 0.3 } cone{ <+0, 0, 0 >, 0.3 <+0, 0.5, 0 >, 0.2 } object {antebraco(k) rotate i*x translate 0.5*y } rotate j*x } #end #macro rabo(i,j) object{ union{ cone { <+0, 0, 0 >, 0.1 <+0, -4, 0 >, 0 } sphere{ <+0, 0, 0 >, 0.1 } } rotate } #end #macro torre(i,j) object{ union{ cylinder { <+0, +0, 0 >, <+0, 0, 1 >, 0.7 } cylinder { <+0, 0, 1 >, <+0, 0, 1.7 >, 0.3 } object{ cone { <+0, -0.5, 0 >, 0.2 <+0, 5, 0 >, 0 } rotate translate 1.5*z } } } #end #macro rato(dpe,dsub,dperna,dmao,dante,dbraco,epe,esub,eperna,emao,eante,ebraco,rabox,raboy,torrei,torrej,px,py,pz) object{ union{ object {corpo texture {cinza} translate 1.5*z } object {olho texture {branco} translate 1.5*z } object {rabo(raboy,rabox) texture {cinza} translate <0,0,1.5> } object {perna(dperna,dsub,dpe) texture {cinza} scale <0.7,0.7,0.7> translate <-1,0.5,1.5> } object {perna(eperna,esub,epe) texture {cinza} scale <-0.7,0.7,0.7> translate <1,0.5,1.5> } object {braco(dbraco,dante,dmao) texture {cinza} scale <0.7,0.7,0.7> translate <-0.7,2.2,1.1> } object {braco(ebraco,eante,emao) texture {cinza} scale <-0.7,0.7,0.7> translate <0.7,2.2,1.1> } object {torre(torrei,torrej) texture {cinza} translate 1.5*z } } translate } #end #if (clock<0.2) #declare T = (-sin(pi*(clock/0.2))*0.3); #else #if (clock<0.3) #declare T = (sin(pi*(clock - 0.2)*5)); #else #if (clock <0.8) #declare T = 1; #else #declare T = (sin(pi*(clock - 0.8)*5/2 + pi/2)); #end #end #end #if (clock<0.2) #declare R = (-sin(pi*(clock/0.2))*0.04); #else #declare R = (sin(pi*(clock - 0.2)/0.8)); #end #if (clock<0.2) #declare S = 0; #else #declare S = (sin(pi*(clock - 0.2)*0.8) + clock - 0.2); #end #declare A = -60*T; #declare B = 60*T; #declare C = -40*T; #declare D = 50*T; #declare G = 5*S; #declare H = 3*R; object{ rato(A,B,C,A,B,C,A,B,C,A,B,C,0,D,0,0,0,G,H) } object {plane {z,0.35 texture { pigment {checker color rgb < 1.00, 0.95, 0.00 >, color rgb < 0.00, 0.20, 0.80 > } } } } // Original camera parameters: // #local cam_ctr = (<0,( 2 + 6*clock),2>) // #local cam_vec = ((<10.00,( 5 + 5*clock),3>)-(<0,( 2 + 6*clock),2>)) // #local cam_sky = z #include "camlight.inc" // camlight((<0,( 2 + 6*clock),2>),<10,10,10>,20.0,z,1.0) camlight(<0,7.5,2>,<10,10,10>,17.0,z,1.0)