// ====================================================================== // CÂMERA camera { location < 60.00, -70.00 , 20.00 > // Posição do observador. right -1.0*x // Largura RELATIVA da imagem. up 0.75*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 0.00, 0.00 > // Para onde a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source { < 60.0, 0.0, 0.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { < 0.0, 0.0, 60.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare p1 = texture { pigment { color rgb < 0.10, 0.10, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare p2 = texture { pigment { color rgb < 0.30, 0.20, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.05 ambient 0.1 } } #declare p3 = texture { pigment { color rgb < 0.80, 0.20, 0.20 > } finish { diffuse 0.5 specular 1.0 roughness 0.05 ambient 0.1 } } #declare p4 = texture { pigment {color <0.1,0.8,0.1>}//, color <1, 0, 0>} // finish { diffuse 0.5 specular 0.3 roughness 0.05 ambient 0.6} } //controladores de tempo #declare tpasso = 0.5; #declare tempo0 = mod(clock,tpasso)/tpasso; #declare tempo1 = mod(tempo0+0.5,1); #if(tempo0<0.5) #declare npasso0=0; #declare npasso1=1; #else #declare npasso0=1; #declare npasso1=0; #end #declare cont=0; #declare min_artdedo=-45; #declare max_artdedo=90 ; #declare min_artmao =-45; #declare max_artmao =90 ; #declare min_artperna2 = 60; #declare max_artperna2 = 100 ; #declare min_artperna_a = 50; #declare max_artperna_a = 80 ; #declare min_artperna_b = -10; #declare max_artperna_b = 10 ; #declare semente = seed(12345); #declare Martdedo1=0.5; #declare Martdedo2=0.5; #declare Martmao1=0.5; #declare Martmao2=0.5; #declare Martperna21=0.5; #declare Martperna22=0.5; #declare Martperna_a1=0.5; #declare Martperna_b1=0.5; #declare Martperna_a2=0.5; #declare Martperna_b2=0.5; #declare pernas = union { #while(cont<6) #if(mod(cont,2)=0) #declare Martdedo=0.5; #declare Martmao=0.0; #declare Martperna2=(npasso0)*sin(tempo1*2*pi); #declare Martperna_a=1-(npasso0)*sin(tempo1*2*pi); #declare Martperna_b=2*npasso0 + 2*tempo0*(1-2*npasso0); #else #declare Martdedo=0.5; #declare Martmao=0.0; #declare Martperna2=(npasso1)*sin(tempo0*2*pi); #declare Martperna_a=1-(npasso1)*sin(tempo0*2*pi); #declare Martperna_b=2*npasso1 + 2*tempo1*(1-2*npasso1); #end #declare artdedo=min_artdedo + Martdedo*(max_artdedo-min_artdedo); #declare artmao=min_artmao + Martmao*(max_artmao-min_artmao); #declare artperna2=min_artperna2 + Martperna2*(max_artperna2-min_artperna2); #declare artperna_a=min_artperna_a + Martperna_a*(max_artperna_a-min_artperna_a); #declare artperna_b=min_artperna_b + Martperna_b*(max_artperna_b-min_artperna_b) + 40*(mod(cont,3) -1); #declare posperna=<1,(mod(cont,3) -1) ,0>; #declare dedo = union { sphere{<0,0,0> 0.3} cone{<0,0,0> 0.3 <0,0,2> 0} scale<0.6,1,1> texture{p1} } #declare mao_ = blob { threshold 0.6 sphere {<0,0,0> 1 1} sphere {<0,0,0.5> 0.7 1} sphere {<0,0,1> 1 1 rotate<45,0,0>} sphere {<0,0,1> 1 1 rotate<-45,0,0>} scale<0.3,1,1> texture{p1} } #declare mao = union { object{mao_} object{dedo rotate<0,artdedo,0> rotate<23,0,0> translate<0,-1,1>} object{dedo rotate<0,artdedo,0> rotate<-23,0,0> translate<0,1,1>} } #declare perna2_ = blob { threshold 0.6 cylinder {<0,0,0> <0,0,15> 0.4 1} sphere {<0,0,0> 1 1 scale<0.6,1,6> translate<0,0,3>} texture {p1} } #declare perna2 = union { object {perna2_} object {mao rotate<0,artmao,0> translate<0,0,15>} } #declare perna1_ = blob { threshold 0.6 cylinder {<0,-0.4,0> <0,0,10> 0.7 1} cylinder {<0,0.4,0> <0,0,10> 0.7 1} texture {p1} } #declare perna1 = union { object {perna1_} object {perna2 rotate<0,artperna2,0> translate<0,0,10>} } object{ perna1 rotate<0, artperna_a, artperna_b> translate posperna #if(cont>2) scale<-1,0,0> #end } #declare cont=cont+1; #end } #declare torax_= intersection { sphere{<0,0,-0.5> 1 scale<5,7,6>} sphere{<0,0,0.5> 1 scale<5,7,5>} translate<0,5,0> texture{p2} } #declare olho = sphere { <0,0,0> 0.7 texture{p3} } #declare cabeca = union { sphere{<0,0,0> 1 } cone{<0,0,0> 1 <0,-1.5,0> 0.05} object{olho translate<-0.5,-0.1,0.5>} object{olho translate<0.5,-0.1,0.5>} scale<2,4,2> translate<0,-4,0> texture{p2} } #declare artcab_a = sin(tempo0*2*pi)*5; #declare artcab_b = sin(tempo0*2*pi)*5; #declare artcab_c = 0; #declare torax = union { object{torax_} object{cabeca rotate} translate<0,-10,0> } #declare abdomen= intersection { sphere{<0,0,-0.5> 1 scale<8,10,9>} sphere{<0,0,0.5> 1 scale<8,10,7>} translate<0,9,0> texture{p2} } #declare artab = -sin(tempo0*4*pi)*5; #declare corpo = union { object{abdomen rotate} object{torax} object{pernas translate<0,-2,0>} } #declare pos0 = <0,0,0>; #declare vel = <0,-20,0>; #declare posicaoCorpo = pos0 + clock*vel; union { object{corpo translate<0,0,10> translate posicaoCorpo} plane {<0,0,1> 0 texture{p4}} }