//Rafael Henrique Castanheira de Souza, ra017134 //laboratorio : A longa mao da justica -- parte 2 // ====================================================================== // CÂMERA camera { location < 15.00, 7.00, 3.00 > // Posição do observador. right -1.00*x // Largura RELATIVA da imagem. up 0.50*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 3.00, 2.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 { 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 * < -50.0, -40.0, +10.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.80, 0.80, 1.00> } #declare preto = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.015 ambient 0.4 } } #declare verde = texture { pigment { color rgb < 0.20, 0.80, 0.20 > } finish { diffuse 0.5 specular 0.0 roughness 0.05 ambient 0.1 } } #declare azul = texture { pigment { color rgb < 0.70, 0.70, 1.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.05 ambient 0.1 } } #declare branco = texture { pigment { color rgb < 1.00, 1.00, 1.00 > } finish { diffuse 0.7 specular 0.3 roughness 0.00005 ambient 0.1 } } #declare cinza = texture { pigment { color rgb < 0.70, 0.70, 0.70 > } finish { diffuse 0.6 specular 0.4 roughness 0.5 ambient 0.1 } } #declare vermelho = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.0001 ambient 0.1 } } #declare amarelo = texture { pigment { color rgb < 1.0,1.00, 0.00 > } finish { diffuse 0.8 specular 0.2 roughness 0.005 ambient 0.1 } } #declare fundo = plane{<0,0,1>, 0 texture{ pigment {checker <0.80, 0.80, 0.00>,<1.00, 1.00,0.00> } finish {ambient 0.1 diffuse 0.9 } //scale 0.5 } } ///// Angulos ///////// #declare alfa_dedo = 120; #declare alfa_mao = 30; #declare alfa_antebraco = 30; #declare alfa_braco = 45; /////////////////////// #declare dedo = cylinder{ <0.00,0.00,0.00>, <0.00,0.50,0.00>, 0.05 texture{azul} } #declare mao = union{ sphere{ <0.00,0.00,0.00>, 0.2 texture{verde} } #if (clock <= 0.40) object{dedo scale 0.8 rotate 90*x rotate (2.5)*(clock)*alfa_dedo*y translate 0.1*z} object{dedo rotate -(2.5)*(clock)*alfa_dedo*z translate <0.00,0.20,-0.10>} object{dedo rotate -(2.5)*(clock)*alfa_dedo*z translate <0.00,0.20, 0.10>} #else object{dedo scale 0.8 rotate 90*x rotate alfa_dedo*y translate 0.1*z} object{dedo rotate -alfa_dedo*z translate <0.00,0.20,-0.10>} object{dedo rotate -alfa_dedo*z translate <0.00,0.20, 0.10>} #end } #declare antebraco = union{ cylinder{ <0.00,0.00,0.00>, <0.00,2.00,0.00>, 0.1 texture{azul} } sphere{ <0.00,0.00,0.00>, 0.15 texture{verde} } //o valor do angulo deveria ser 10, mas quase nao aparecia #if(clock <= 0.40) object{mao rotate alfa_mao*2.50*(0.4-clock)*x translate 2*y} #else #if (clock <=0.50) object{mao translate 2*y} #else object{mao translate 2*y} #end #end } #declare braco = union{ cylinder{ <0.00,0.00,0.00>, <0.00,2.00,0.00>, 0.1 texture{azul} } #if(clock <= 0.40) object{antebraco rotate alfa_antebraco*2.5*(0.4-clock)*x translate 2*y} #else #if (clock <=0.50) object{antebraco translate 2*y} #else object{antebraco rotate 1.5*alfa_antebraco*2.0*(clock-0.5)*x translate 2*y} #end #end } #declare ombro = union{ difference{ sphere{ <0.00,0.00,0.00>, 0.40 texture{preto} } box{ <-0.50,-0.50,0.00> < 0.50, 0.50,-0.50> texture{preto} } } #if(clock <= 0.40) object{braco rotate 30*2.50*(0.40-clock)*z rotate alfa_braco*2.5*(0.4-clock)*x translate <0.00,0.10,0.10>} #else #if (clock <= 0.50) object{braco translate <0.00,0.10,0.10>} #else //object{braco rotate 0.5*alfa_braco*2.0*(clock-0.5)*x translate <0.00,0.10,0.10>} object{braco translate <0.00,0.10,0.10>} #end #end } #declare corpo = union{ cylinder{ //tronco <0.00,0.00,0.00>, <0.00,0.00,2.50>, 0.70 texture{azul} } cylinder{//pescoco <0.00,0.00,2.50>, <0.00,0.00,2.80>, 0.20 texture{preto} } sphere{//cabeca <0.00,0.00,3.15>, 0.70 texture{azul} } object{ombro translate <-0.70,0.00,2.30> } object{ombro scale <-1.00,1.00,1.00> translate < 0.70,0.00,2.30> } } #declare bandido = union{ cylinder{ <0.00,0.00,0.00>, <0.00,0.00,3.00>, 0.50 texture{preto} } cylinder{ <0.00,0.00,2.50>, <0.00,0.00,2.80>, 0.51 texture{vermelho} } } sky_sphere{ pigment {color rgb <1,1,1>} scale 2 translate -1 } union{ object{corpo} object{fundo} #if(clock <= 0.5) object{bandido translate 4*y} #else object{bandido translate <0.00,2.00,-2.80> rotate 1.5*alfa_antebraco*2.00*(clock-0.50)*x translate <0.00,2.00,2.80>} #end }