// Last edited on 2003-12-09 01:53:14 by stolfi #include "colors.inc" #include "skies.inc" #include "rand.inc" #include "woods.inc" #declare ctr = <0, 1, 5> + 0.9*clock*z; #declare camDir = <-10, 7, -20>; camera { location ctr + 0.75*camDir right -0.8*x up 0.6*y sky y look_at ctr } plane{ y,0 texture{ pigment{ checker color rgb <0.7,0.6,0.5>, color rgb <0.6,0.5,0.2> } finish{ diffuse 0.7 ambient 0.3 } scale 0.5*0.9 } } //DECLARAÇÕES: GLOBAIS #declare seedling = seed(15081982); global_settings { assumed_gamma 1.3 max_trace_level 5 } //DECLARAÇÕES: MATERIAIS #declare ouro = material { texture { pigment { BrightGold } finish { ambient 0.05 diffuse 0.05 reflection BrightGold metallic specular 0.5 roughness 0.001 } } } #declare cristal_vermelho = material { texture { pigment { rgbf <1, 0, 0, 1> } finish { ambient 0.8 diffuse 0.1 reflection rgbf <0.9, 0.9, 0.1, 1> specular 1 roughness 0.001 } } interior { ior 1.1 } } // DECLARAÇÕES: BIXO #declare corpo = difference { sphere { <0, 0, 0>, 1 pigment { Green } } box { <-1, 0, -1>, <1, 1, 1> pigment { Yellow } } scale <1, 1, 3> } #declare cabeca = union { sphere { <0, 0, 0>, 0.6 pigment { DarkSlateGrey } } sphere { <0, 0, 0>, 0.1 material { cristal_vermelho } translate <0, 0.6, 0> rotate <0, 0, 40> } sphere { <0, 0, 0>, 0.1 material { cristal_vermelho } translate <0, 0.6, 0> rotate <0, 0, -40> } } #declare articulacao = sphere { <0, 0, 0>, 0.1 pigment { Blue } } #declare tam_perna = 1.5; #declare parte_perna = cylinder { <0, 0, 0>, <0, tam_perna, 0>, 0.05 pigment { White } } #declare cicloz = 0.25; #declare cicloy = 0.5; #declare zmax = 20; #declare zslope = zmax/cicloz; //quanto vai subir por clock #declare ymax = 40; #declare yslope = ymax/cicloy; //quanto vai subir por clock #declare bixo = union { #declare xx = 0; #while (xx < 2) #declare zz = 0; #while (zz < 3) #declare no_perna = xx*3+zz; #if (mod(no_perna, 2) = 0) #declare clockp = mod(clock, 1); #declare mody = -1; #else #declare clockp = mod(mod(clock+cicloz*2, 1), 1); #declare mody = 1; #end #declare varxy = mod(clockp, cicloy); #declare varxz = mod(clockp, cicloz); #declare diffy = 0; #if (clockp < cicloy) #declare diffy = yslope*varxy*y; #else #declare diffy = (ymax - yslope*varxy)*y; #end #if (clockp < cicloz) #declare diffz = zslope*varxz*z; #end #if (clockp >= cicloz & clockp < cicloy) #declare diffz = (zmax - zslope*varxz)*z; #end #if (clockp >= cicloy) #declare diffz = 0; #end #declare perna = union { #if (xx = 1) #declare angulo1 = <0, 20, -50>-diffz-diffy; #declare angulo2 = <0, 0, 20>; #declare angulo3 = <0, 0, 20>; #declare angulo4 = <0, 0, 20>; #end #if (xx = 0) #declare angulo1 = <0, -20, 50>+diffz+diffy; #declare angulo2 = <0, 0, -20>; #declare angulo3 = <0, 0, -20>; #declare angulo4 = <0, 0, -20>; #end //liberdade em relacao aos angulos object { articulacao } object { parte_perna rotate angulo1 } object { articulacao translate <0, tam_perna, 0> rotate angulo1 } object { parte_perna rotate angulo2 translate <0, tam_perna, 0> rotate angulo1} object { articulacao translate <0, tam_perna, 0> rotate angulo2 translate <0, tam_perna, 0> rotate angulo1} object { parte_perna rotate angulo3 translate <0, tam_perna, 0> rotate angulo2 translate <0, tam_perna, 0> rotate angulo1} object { articulacao translate <0, tam_perna, 0> rotate angulo3 translate <0, tam_perna, 0> rotate angulo2 translate <0, tam_perna, 0> rotate angulo1} object { parte_perna rotate angulo4 translate <0, tam_perna, 0> rotate angulo3 translate <0, tam_perna, 0> rotate angulo2 translate <0, tam_perna, 0> rotate angulo1} object { articulacao translate <0, tam_perna, 0> rotate angulo4 translate <0, tam_perna, 0> rotate angulo3 translate <0, tam_perna, 0> rotate angulo2 translate <0, tam_perna, 0> rotate angulo1} scale 0.5 } #if (xx = 0) object { perna translate <-0.7, 2.5, -1 + 1.2*zz> } #end #if (xx = 1) object { perna translate <0.7, 2.5, -1 + 1.2*zz> } #end #declare zz = zz+1; #end #declare xx = xx+1; #end object { cabeca rotate <240, 0, 0> translate <0, 1.5, -2.7> } object { corpo translate <0, 2.5, 0> } } // DECLARAÇÕES: CAMA #declare cama = union { cylinder { <0,0,0>, <0,4,0>, 0.1 texture { T_Wood1 } translate <-2, 0, -4> } sphere { <0, 4.1, 0>, 0.1 translate <-2, 0, -4> material { ouro } } cylinder { <0,0,0>, <0,4,0>, 0.1 texture { T_Wood1 } translate <2, 0, -4> } sphere { <0, 4.1, 0>, 0.1 translate <2, 0, -4> material { ouro } } cylinder { <0,0,0>, <0,2.6,0>, 0.1 texture { T_Wood1 } translate <-2, 0, 4> } sphere { <0, 2.7, 0>, 0.1 translate <-2, 0, 4> material { ouro } } cylinder { <0,0,0>, <0,2.6,0>, 0.1 texture { T_Wood1 } translate <2, 0, 4> } sphere { <0, 2.7, 0>, 0.1 translate <2, 0, 4> material { ouro } } box { <-2, 0.5, -4>, <2, 1.5, 4> pigment { White } } box { <-2, 2, -4>, <2, 3.5, -4.00001> texture { T_Wood1 } } text { ttf "cour.ttf" "BARATANHA" 0.05, 0 material { ouro } scale <0.7, 1, 1> translate <-2, 2.5, -4> finish { ambient 1 }} } // CENA object { bixo rotate <180, 0, 0> translate <0, 5.10, 0.9*clock>} object { cama rotate <0, 180, 0> translate <0, 0, 10> } sky_sphere { S_Cloud1 } light_source { 0 color rgb 1.3 area_light <40, 0, 0> <0, 0, 40> 4, 4 adaptive 0 jitter translate <-100, 1000, -100> }