// Last edited on 2007-07-23 23:39:16 by stolfi // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } background{ color rgb < 0.75, 0.80, 0.85 > } #declare raio = 2.000; #declare tinta_rosto = 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_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 tinta_grama = texture { pigment { color rgb <0.00, 0.60, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.035 ambient 0.1 } } #declare tinta_amarela = texture { pigment { color rgb < 1.00, 1.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_rosto = texture { pigment { color rgb < 0.50, 0.50, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_metal = texture { pigment { color rgb < 0.50, 0.50, 0.50 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare palito = union{ cylinder{ <0.0,0.0,0.0>, <0.0,0.0,10.0>, 0.5 texture{tinta_amarela} } sphere{ <0.0,0.0,10.0> 1.0 texture{tinta_vermelha} } } #declare escudo = difference{ sphere{ <0.0,0.0,0.0> 5.0 scale <0.2,1,1> texture {tinta_amarela} } } #declare mao_palito = union{ box{ <-1.0,-1.0,0.0> <1.0,1.0,2.0> texture{tinta_rosto} } object{palito translate <0.0,0.0,-1.0>} } #declare mao_escudo = union{ box{ <-1.0,-1.0,0.0> <1.0,1.0,2.0> texture{tinta_rosto} } object{escudo translate <2.0,0.0,-1.0>} } #declare antebraco = union{ cylinder{ <0.0,0.0,0.0>, <0.0,0.0,6.0>, 1.0 texture{tinta_metal} } } #declare braco = union{ cylinder{ <0.0,0.0,0.0>, <0.0,0.0,5.0>, 1.0 texture{tinta_metal} } sphere{ <0.0,0.0,0.0> 1.2 texture{tinta_metal} } sphere{ <0.0,0.0,5.0> 1.2 texture{tinta_metal} } } #macro desenha_antebraco(angulo_mao ,escudo) union{ object{antebraco translate<0.0,0.0,-6>} #if (escudo = 0 ) object{mao_palito rotate x*angulo_mao translate<0.0,0.0,-6> } #else object{mao_escudo rotate x*angulo_mao translate<0.0,0.0,-6> } #end } #end #macro desenha_braco(angulo_antebraco,angulo_mao,escudo) union{ object{braco translate<0.0,0.0,-5>} object{ desenha_antebraco(angulo_mao,escudo) rotate x*angulo_antebraco translate<0.0,0.0,-5> } } #end #declare joelho_pe = union{ cylinder{ <0.0,0.0,-10.0> <0.0,0.0,0.0> 1.0 texture{tinta_metal} } sphere{ <0.0,0.0,0.0> 2.0 texture{tinta_rosto} scale <1.0, 1.0, 0.5> translate <0.0,0.0,-10.0> } sphere{ <0.0,0.0,0.0> 1.2 texture{tinta_metal} } } #macro perna(angulo_joelho) union{ cylinder{ <0.0,0.0,-7.0> <0.0,0.0,0.0> 1.0 texture{tinta_metal} } object{joelho_pe rotate y*angulo_joelho translate <0.0,0.0,-7> } } #end #declare corpo = union{ box{ <0.0,0.0,0.0> <5.0,5.0,5.0> translate <-2.5,-2.5,0> rotate y*45 translate <-2.0,0,2.5> texture{tinta_metal} } box{ <0.0,0.0,0.0> <6,5.0,5.0> translate <-3,-2.5,0> texture{tinta_metal} } box{ <0.0,0.0,0.0> <5.0,5.0,5.0> translate <-2.5,-2.5,0> rotate y*45 translate <-2.0,0,-2.0> texture{tinta_metal} } } #declare cabeca = union{ sphere{ <0.0,0.0,0.0> 3 texture{tinta_rosto} } sphere{ <0.0,0.0,0.0> 1.5 scale <0.2,1,1> translate <0.0,1.7,2.2> texture{tinta_rosto} } sphere{ <0.0,0.0,0.0> 1.5 scale <0.2,1,1> translate <0.0,-1.7,2.2> texture{tinta_rosto} } sphere{ <3.0,0,1> 0.5 } } #macro guerreiro(a_xbe,a_ybe,a_zbe, a_xbd,a_ybd ,a_zbd, a_zpe, a_ype,a_xpe, a_zpd,a_ypd,a_xpd,a_cabeca,a_antebe, a_be,esc_e,a_antebd, a_bd,esc_d,a_pe,a_pd) union{ object{corpo rotate z*90} object{cabeca rotate z*a_cabeca translate <0.5,0,9>} cone{ <0.0,0.0,-4> 3 <0.0,0.0,0> 2.5 texture{tinta_metal} } object{ desenha_braco(a_antebe,a_be,esc_e) rotate a_xbe*x rotate a_ybe*y rotate a_zbe*z translate <0,-4,4> } object{ desenha_braco(a_antebd,a_bd,esc_d) rotate a_xbd*x rotate a_ybd*y rotate a_zbd*z translate <0,4,4> } object{perna(a_pe) rotate z*a_zpe rotate y*a_ype rotate x*a_xpe translate <0.0,-2.0,-4> } object{perna(a_pd) rotate z*a_zpd rotate y*a_ypd rotate x*a_xpd translate <0.0,2.0,-4> } } #end #macro aproxima( Ai,Af,ti,tf,t_atual) ( (Ai) + (((Af)-(Ai))*(((t_atual) -(ti))/((tf) - (ti)))) ) #end #declare t_atual = clock; #if (t_atual < 0.2) #declare ti = 0; #declare tf = 0.2; #declare A_xbe_i = 40; #declare A_xbe_f = 25; #declare A_ybe_i = 0; #declare A_ybe_f = 0; #declare A_zbe_i = 90; #declare A_zbe_f = 90; #declare A_xbd_i = -30; #declare A_xbd_f = -15; #declare A_ybd_i = 0; #declare A_ybd_f = 0; #declare A_zbd_i = 90; #declare A_zbd_f = 90; #declare A_xpe_i = 0; #declare A_xpe_f = 0; #declare A_ype_i = -40; #declare A_ype_f = -30; #declare A_zpe_i = 0; #declare A_zpe_f = 0; #declare A_xpd_i = 0; #declare A_xpd_f = 0; #declare A_ypd_i = 10; #declare A_ypd_f = 0; #declare A_zpd_i = 0; #declare A_zpd_f = 0; #declare A_cabe_i =0; #declare A_cabe_f =0; #declare A_antebe_i = -25; #declare A_antebe_f = -25; #declare A_be_i = 90; #declare A_be_f = 90; #declare A_antebd_i = -60; #declare A_antebd_f = -60; #declare A_bd_i = 0; #declare A_bd_f = 0; #declare A_pe_i = 30; #declare A_pe_f = 20; #declare A_pd_i = 45; #declare A_pd_f = 30; #end #if ((t_atual >= 0.2) & (t_atual < 0.4)) #declare ti = 0.2; #declare tf = 0.4; #declare A_xbe_i = 25; #declare A_xbe_f = 5; #declare A_ybe_i = 0; #declare A_ybe_f = 0; #declare A_zbe_i = 90; #declare A_zbe_f = 90; #declare A_xbd_i = -15; #declare A_xbd_f = 0; #declare A_ybd_i = 0; #declare A_ybd_f = 0; #declare A_zbd_i = 90; #declare A_zbd_f = 90; #declare A_xpe_i = 0; #declare A_xpe_f = 0; #declare A_ype_i = -30; #declare A_ype_f = 5; #declare A_zpe_i = 0; #declare A_zpe_f = 0; #declare A_xpd_i = 0; #declare A_xpd_f = 0; #declare A_ypd_i = 0; #declare A_ypd_f = -25; #declare A_zpd_i = 0; #declare A_zpd_f = 0; #declare A_cabe_i =0; #declare A_cabe_f =0; #declare A_antebe_i = -25; #declare A_antebe_f = -35; #declare A_be_i = 90; #declare A_be_f = 90; #declare A_antebd_i = -60; #declare A_antebd_f = -20; #declare A_bd_i = 0; #declare A_bd_f = 0; #declare A_pe_i = 20; #declare A_pe_f = 10; #declare A_pd_i = 30; #declare A_pd_f = 45; #end #if ((t_atual >= 0.4) & (t_atual < 0.6)) #declare ti = 0.4; #declare tf = 0.6; #declare A_xbe_i = 5; #declare A_xbe_f = -15; #declare A_ybe_i = 0; #declare A_ybe_f = 0; #declare A_zbe_i = 90; #declare A_zbe_f = 90; #declare A_xbd_i = 0; #declare A_xbd_f = 25; #declare A_ybd_i = 0; #declare A_ybd_f = 0; #declare A_zbd_i = 90; #declare A_zbd_f = 90; #declare A_xpe_i = 0; #declare A_xpe_f = 0; #declare A_ype_i = 5; #declare A_ype_f = 25; #declare A_zpe_i = 0; #declare A_zpe_f = 0; #declare A_xpd_i = 0; #declare A_xpd_f = 0; #declare A_ypd_i = -25; #declare A_ypd_f = -45; #declare A_zpd_i = 0; #declare A_zpd_f = 0; #declare A_cabe_i =0; #declare A_cabe_f =0; #declare A_antebe_i = -35; #declare A_antebe_f = -35; #declare A_be_i = 90; #declare A_be_f = 90; #declare A_antebd_i = -20; #declare A_antebd_f = -20; #declare A_bd_i = 0; #declare A_bd_f = 0; #declare A_pe_i = 10; #declare A_pe_f = 25; #declare A_pd_i = 45; #declare A_pd_f = 45; #end #if ((t_atual >= 0.6) & (t_atual < 0.8)) #declare ti = 0.6; #declare tf = 0.8; #declare A_xbe_i = -15; #declare A_xbe_f = 5; #declare A_ybe_i = 0; #declare A_ybe_f = 0; #declare A_zbe_i = 90; #declare A_zbe_f = 90; #declare A_xbd_i = 25; #declare A_xbd_f = 0; #declare A_ybd_i = 0; #declare A_ybd_f = 0; #declare A_zbd_i = 90; #declare A_zbd_f = 90; #declare A_xpe_i = 0; #declare A_xpe_f = 0; #declare A_ype_i = 25; #declare A_ype_f = 5; #declare A_zpe_i = 0; #declare A_zpe_f = 0; #declare A_xpd_i = 0; #declare A_xpd_f = 0; #declare A_ypd_i = -45; #declare A_ypd_f = -20; #declare A_zpd_i = 0; #declare A_zpd_f = 0; #declare A_cabe_i =0; #declare A_cabe_f =0; #declare A_antebe_i = -35; #declare A_antebe_f = -35; #declare A_be_i = 90; #declare A_be_f = 90; #declare A_antebd_i = -20; #declare A_antebd_f = -20; #declare A_bd_i = 0; #declare A_bd_f = 0; #declare A_pe_i = 25; #declare A_pe_f = 25; #declare A_pd_i = 45; #declare A_pd_f = 30; #end #if (t_atual >= 0.8) #declare ti = 0.8; #declare tf = 1.0; #declare A_xbe_i = 5; #declare A_xbe_f = 40; #declare A_ybe_i = 0; #declare A_ybe_f = 0; #declare A_zbe_i = 90; #declare A_zbe_f = 90; #declare A_xbd_i = 0; #declare A_xbd_f = -30; #declare A_ybd_i = 0; #declare A_ybd_f = 0; #declare A_zbd_i = 90; #declare A_zbd_f = 90; #declare A_xpe_i = 0; #declare A_xpe_f = 0; #declare A_ype_i = 5; #declare A_ype_f = -40; #declare A_zpe_i = 0; #declare A_zpe_f = 0; #declare A_xpd_i = 0; #declare A_xpd_f = 0; #declare A_ypd_i = -20; #declare A_ypd_f = 10; #declare A_zpd_i = 0; #declare A_zpd_f = 0; #declare A_cabe_i =0; #declare A_cabe_f =0; #declare A_antebe_i = -35; #declare A_antebe_f = -25; #declare A_be_i = 90; #declare A_be_f = 90; #declare A_antebd_i = -20; #declare A_antebd_f = -60; #declare A_bd_i = 0; #declare A_bd_f = 0; #declare A_pe_i = 25; #declare A_pe_f = 30; #declare A_pd_i = 30; #declare A_pd_f = 45; #end #declare z_chao = -20; #declare chao = box{ <-50.0,-50.0,z_chao> <50.0,50.0,-25> texture{tinta_grama} } object{chao} object { guerreiro( aproxima(A_xbe_i,A_xbe_f,ti,tf,t_atual), aproxima(A_ybe_i,A_ybe_f,ti,tf,t_atual), aproxima(A_zbe_i,A_zbe_f,ti,tf,t_atual), aproxima(A_xbd_i,A_xbd_f,ti,tf,t_atual), aproxima(A_ybd_i,A_ybd_f,ti,tf,t_atual), aproxima(A_zbd_i,A_zbd_f,ti,tf,t_atual), aproxima(A_xpe_i,A_xpe_f,ti,tf,t_atual), aproxima(A_ype_i,A_ype_f,ti,tf,t_atual), aproxima(A_zpe_i,A_zpe_f,ti,tf,t_atual), aproxima(A_xpd_i,A_xpd_f,ti,tf,t_atual), aproxima(A_ypd_i,A_ypd_f,ti,tf,t_atual), aproxima(A_zpd_i,A_zpd_f,ti,tf,t_atual), aproxima(A_cabe_i,A_cabe_f,ti,tf,t_atual), aproxima(A_antebe_i,A_antebe_f,ti,tf,t_atual), aproxima(A_be_i,A_be_f,ti,tf,t_atual), 0, aproxima(A_antebd_i,A_antebd_f,ti,tf,t_atual), aproxima(A_bd_i,A_bd_f,ti,tf,t_atual), 1, aproxima(A_pe_i,A_pe_f,ti,tf,t_atual), aproxima(A_pd_i,A_pd_f,ti,tf,t_atual)) rotate 45*z } // Original camera parameters: // #local cam_ctr = <0,0,0> // #local cam_vec = <50.00,0.00,2.00> // #local cam_sky = z #include "camlight.inc" // camlight(<0,0,0>,<10,10,10>,20.0,z,1.0) camlight(<0,0,0>,<10,10,10>,20.0,z,1.0)