// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi #include "colors.inc" // ====================================================================== // CÂMERA camera { location <5, -5, 60.00 > // Posição do observador. right -0.75*x // Largura RELATIVA da imagem. up 1.00*y // Altura RELATIVA da imagem. // sky z // Qual direção é "para cima"? look_at < 5.00, 0.00, 0.00 > // Para onde a câmera está apontando. rotate 40*y } // 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 { 10 * < +50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < -30.0, 30.0, -30.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA global_settings { assumed_gamma 1.0 } // ---------------------------------------- sky_sphere { pigment { gradient y color_map { [0.0 rgb <0.6,0.7,1.0>] [0.7 rgb <0.0,0.1,0.8>] } } } #declare amarelo = texture { pigment { color rgb < 1.00, 1.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare azulclaro = texture { pigment { color rgb < 0.00, 1.00, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare dedos1 = 25; #declare dedos2 = 0; #declare mao1a= -30; #declare mao1b= 30; #declare mao2 = 0; #declare ant1a = -40; #declare ant1b = 35; #declare ant2 = 0; #declare braco1=40; #declare braco2=90; #declare movdedo1= dedos1/0.6 * (clock); #declare movdedo2= dedos1; #declare movmao1a= mao1a/0.6 * (clock); #declare movmao1b= mao1b/0.6 * (clock); #declare movmao2a= mao1a; #declare movmao2b= mao1b; #declare movant1a= ant1a/0.6 * (clock); #declare movant1b= ant1b/0.6 * (clock); #declare movant2a= ant1a; #declare movant2b= ant1b; #declare movbraco1= braco1/0.6 * (clock); #declare movbraco2= braco1 + ((braco2-braco1)/(0.4))*(clock-0.6); #declare dedos = union{ cylinder{<0,-1,0>,<2.5,-1,0>,0.25 pigment { Blue } } cylinder{<0,-0.5,0>,<2.5,-0.5,0>,0.25 pigment { Red } } cylinder{<0,0,0>,<2.5,0,0>,0.25 pigment { Magenta } } cylinder{<0,0.5,0>,<2.5,0.5,0>,0.25 pigment { Yellow } } cylinder{<0,1,0>,<2.5,1,0>,0.25 pigment { Green } } } #declare mao1= union{ object {dedos #if(clock<0.6) rotate movdedo1*y #else rotate movdedo2*y #end translate <3,0,0> } box{ <0,1.25,0.5>, <3,-1.25,-0.5> pigment { Magenta } } } #declare fugitivo= cylinder{<15,-10,-6>,<15,-4,-6>,2 pigment {White} } #declare fugitivo2= cylinder{<3,3,-2.6>,<3,-3,-2.6>,2 pigment {White} } #declare mao_obj= union{ object {mao1} object {fugitivo2} } #declare antebraco1= #if(clock<0.6) union{ object{mao1 rotate movmao1a*y rotate movmao1b*x translate <8,0,0> } cylinder{<0,0,0>,<8,0,0>,1.25 pigment {Blue} } } #else union{ object{mao_obj rotate movmao2a*y rotate movmao2b*x translate <8,0,0> } cylinder{<0,0,0>,<8,0,0>,1.25 pigment {Blue} } } #end #declare braco1= union{ object{antebraco1 #if(clock<0.6) rotate movant1a*z rotate movant1b*y #else rotate movant2a*z rotate movant2b*y #end translate <0.5,-8,0> } cylinder{<0,-8.5,0>,<0,0,0>,1.5 pigment {Green} } } #declare mao2= union{ object {dedos #if(clock<0.6) rotate -movdedo1*y #else rotate -movdedo2*y #end translate <3,0,0> } box{ <0,1.25,0.5>, <3,-1.25,-0.5> pigment { Magenta } } } #declare antebraco2= union{ object{mao2 #if(clock<0.6) rotate -movmao1a*y rotate -movmao1b*x #else rotate -movmao2a*y rotate -movmao2b*x #end translate <8,0,0> } cylinder{<0,0,0>,<8,0,0>,1.25 pigment {Blue} } } #declare braco2= union{ object{antebraco2 #if(clock<0.6) rotate movant1a*z rotate -movant1b*y #else rotate movant2a*z rotate -movant2b*y #end translate <0.5,-8,0> } cylinder{<0,-8.5,0>,<0,0,0>,1.5 pigment {Green} } } #declare corpo= union{ box{<-5,-10,-0.8>,<5,2,-11.2> pigment {Black} } cylinder{<0,2.01,-6>,<0,4,-6>,1 pigment {Yellow} } sphere{<0,8,-6>,4 pigment {Blue} } } #declare conjunto= union{ object{antebraco1 #if(clock<0.6) rotate movant1a*z rotate movant1b*y #else rotate movant2a*z rotate movant2b*y #end translate <0.5,-8,0> } cylinder{<0,-8.5,0>,<0,0,0>,1.5 pigment {Green} } object{fugitivo} } // ---------------------------------------- plane { y, -20 pigment { color rgb <0.7,0.5,0.3> } } union{ object {corpo} object{braco1 #if(clock<0.6) rotate movbraco1*z #else rotate movbraco2*z #end } object{braco2 #if(clock<0.6) rotate movbraco1*z #else rotate movbraco2*z #end //rotate 70*z*clock translate <0,0,-12> } #if(clock<0.6) object {fugitivo} #end }