// Last edited on 2007-07-23 23:41:15 by stolfi // Processed by remove-cam-lights background{ color rgb < 0.79, 1.0, 1.0 > } #declare raio = 2.000; #declare tinta_rosa = texture { pigment { color rgb < 1.00, 0.85, 0.72 > } finish { diffuse 0.5 specular 0.2 roughness 0.005 ambient 0.1 } } #declare tinta_chao = texture { pigment { color rgb < 0.54, 0.45, 0.33 > } finish { diffuse 0.5 specular 0.2 roughness 0.005 ambient 0.1 } } #declare tinta_verde = texture { pigment { color rgb < 0.20, 0.40, 0.20 > } finish { diffuse 0.5 specular 0.2 roughness 0.005 ambient 0.1 } } #declare tinta_bege = texture { pigment { color rgb < 0.8, 0.60, 0.10 > } finish { diffuse 0.5 specular 0.1 roughness 0.005 ambient 0.1 } } #declare tinta_amarela = texture { pigment { color rgb < 0.90, 0.80, 0.00 > } finish { diffuse 0.5 specular 0.3 roughness 0.005 ambient 0.1 } } #declare tinta_marrom = texture { pigment { color rgb < 0.80, 0.74, 0.43 > } finish { diffuse 0.5 specular 0.15 roughness 0.005 ambient 0.1 } } #declare tinta_cinza = texture { pigment { color rgb < 0.90, 0.90, 0.90 > } finish { diffuse 0.5 specular 1.0 roughness 0.005 ambient 0.1 } } #declare tinta_preta = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_corpo = texture { pigment { color rgb < 1.00, 1.00, 0.80 > } finish { diffuse 0.5 specular 0.0 roughness 0.005 ambient 0.1 } } #macro bola () sphere{ < 0, 0, 0>, raio } #end #macro retangulo() box{ <1, 1, 1>, <-1, -1, -1> } #end #macro cone_util() cone{ <0.0, 0.0, 0>, raio, <0.0, 2.0, 0>, raio } #end #macro cabeca() object { bola() texture{tinta_corpo} scale<1.5, 1.5, 1.5> translate<0, 10, 0> } object {bola() texture{tinta_preta} scale<0.2, 0.25, 0.1> translate<1.5, 10, 2.5> } object {bola() texture{tinta_preta} scale<0.2, 0.25, 0.1> translate<-1.5, 10, 2.5> } object {bola() texture{tinta_corpo} scale<0.5, 0.5, 0.9> translate<0, 8.5, 2.5> } object {retangulo() texture{tinta_preta} scale<2.0, 0.05, 0.05> translate<0, 8.0, 3.7> } object {retangulo() texture{tinta_preta} scale<2.0, 0.05, 0.05> rotate z * 10 translate<0, 8.0, 3.7> } object {retangulo() texture{tinta_preta} scale<2.0, 0.05, 0.05> rotate z * -10 translate<0, 8.0, 3.7> } difference{ object{bola() texture{tinta_marrom} scale<1.55, 1.55, 1.55> translate<0, 10, 0> } object{bola() scale<2.0, 2.0, 2.0> translate<0, 6.5, 0> } object{bola() scale<0.3, 0.4, 0.4> translate<1.5, 10.1, 2.5> } object{bola() scale<0.3, 0.4, 0.4> translate<-1.5, 10.1, 2.5> } object{bola() scale<0.7, 1.0 0.3> rotate z * -25 rotate x * 15 translate<2, 12, 0> } object{bola() scale<0.7, 1.0 0.3> rotate z * -25 rotate x * 15 translate<-2, 12, 0> } } difference{ object{bola() texture{tinta_corpo} scale<0.7, 1.2, 0.3> rotate z * -25 rotate x * 15 translate<2, 12, 0> } object{bola() texture{tinta_rosa} scale<0.7, 1.2, 0.3> rotate z * -25 rotate x * 15 translate<2, 12, 0.8> } } difference{ object{bola() texture{tinta_corpo} scale<0.7, 1.2, 0.3> rotate z * 25 rotate x * 15 translate<-2, 12, 0> } object{bola() texture{tinta_rosa} scale<0.7, 1.2, 0.3> rotate z * 25 rotate x * 15 translate<-2, 12, 0.8> } } #end #macro orelha() #end #macro corpo() difference{ union{ object{bola() texture{tinta_marrom} scale<2, 2.3, 2> translate<0, 3, 0> } object{cone_util() texture{tinta_marrom} scale<2, 2, 2> translate<0, -1, 0> } } object{retangulo() scale<4, 1, 4> translate<0, 8.0, 0> } object{bola() translate<-3.0, 6.2, 0.0> scale<0.85, 0.85, 0.85> } object{bola() translate<3.0, 6.2, 0.0> scale<0.85, 0.85, 0.85> } } object{bola() texture{tinta_corpo} scale<1.9, 2.2, 1.9> translate<0, 3, 0> } #end #macro espada() union{ object{ cone{ <4.0, 0.0, 0.0>, 0.7, <15.0, 0.0, 0.0>, 0.03 } scale<1.0, 1.0, 0.2> texture{tinta_cinza} } object{ cone{ <3.5, 0.0, 0.0>, 0.8, <4.0, 0.0, 0.0>, 0.8 } scale<1.0, 1.0, 0.2> texture{tinta_preta} } object{ cone{ <0.5, 0.0, 0.0>, 0.5, <3.5, 0.0, 0.0>, 0.5 } texture{tinta_preta} } object{ cone{ <0.0, 0.0, 0.0>, 0.8, <0.5, 0.0, 0.0>, 0.8 } scale<1.0, 1.0, 0.2> texture{tinta_preta} } } #end #macro alca() difference{object{ bola() texture{tinta_bege} scale<1.0, 0.7, 0.7> } object{ bola() texture{tinta_bege} scale<1.0, 0.7, 0.7> translate<0.0, 0.0, -0.3> } object{box{ <-3.0, 0.7, -3.0>, <3.0, 3.0, 3.0> texture{tinta_bege} } } object{box{ <-3.0, -0.7, -3.0>, <3.0, -3.0, 3.0> texture{tinta_bege} } } } #end #macro escudo() union{ difference{ object{ bola() texture{tinta_amarela} scale<3.5, 2.5, 0.5> } object{ bola() texture{tinta_bege} scale<3.5, 2.5, 0.5> translate<0.0, 0.0, 0.5> } } object{alca()} } #end #macro juncao() union{ cone{ <0.0, 0.0, 0.0>, 1, <0.0, 4.0, 0.0>, 1 } sphere{ < 0.0, 4.0, 0.0>, 1 } } #end #macro antebraco() union{ object{ cone{ <0.0, 0.0, 0.0>, 1, <0.0, 3.0, 0.0>, 0.5 } } object{ sphere{ < 0.0, 2.0, 0.0>, 1.2 } scale<1, 1.2, 0.5> } } #end #macro braco( ax ) union{ object{bola() texture{tinta_corpo} scale<0.5, 0.5, 0.5> } object{juncao() texture{tinta_corpo} } object{antebraco() texture{tinta_corpo} rotate x * ax translate<0.0, 4.0, 0.0> } } #end #macro braco_direito(bx, by, bz, ax) union{ object{escudo() translate<0.0, 2.5, -0.3> rotate x * ax rotate y * 10 translate<0.0, 4.0, 0.0> } object{ braco( ax )} rotate x * bx rotate y * by rotate z * bz translate<3, 6, 0> } #end #macro braco_esquerdo(bx, by, bz, ax) union{object{espada() translate<-1.8, 2.5, 0.7> rotate x * ax translate<0.0, 4.0, 0.0> } object{braco( ax )} rotate x * bx rotate y * by rotate z * bz translate<-3, 6, 0> } #end #macro canela() union{ object{ cone{ <0.0, 0.0, 0.0>, 1.5, <0.0, -4.0, 0.0>, 1.5 } } difference{ object{ sphere{ < 0.0, -4.5, 0.0>, 1.2 } texture{tinta_corpo} scale<1.2, 1.0, 2.0> translate<0.0, 0.0, 0.7> } object{ box{ <7.0, -7.0, 7.0>, <-7.0, -5.0, -7.0> texture{tinta_corpo} } } } } #end #macro perna( cx ) union{ object{juncao() texture{tinta_verde} scale<1.5, 1.0, 1.5> translate<0.0, -4.0, 0.0 > } object{ sphere{ < 0.0, -4.0, 0.0>, 1.5 texture{tinta_verde} } } object{canela() texture{tinta_verde} rotate x * cx translate<0.0, -4.0, 0.0> } } #end #macro perna_direita(px, py, pz, cx) object{ perna(cx) rotate x * px rotate y * py rotate z * pz translate<2.0, -1.0, 0.0> } #end #macro perna_esquerda(px, py, pz, cx) object{ perna(cx) rotate x * px rotate y * py rotate z * pz translate<-2.0, -1.0, 0.0> } #end #macro rato1() union{ cabeca() corpo() braco_direito(55.0, 0.0, -90.0, 80.0) braco_esquerdo(15.0, 16.0, 110.0, 15.0) perna_direita(-35.0, 0.0, 0.0, 45.0) perna_esquerda(45.0, 0.0, 0.0, 40.0) } #end #macro rato2() union{ cabeca() corpo() braco_direito(54.0, 0.0, -91.0, 78.0) braco_esquerdo(0.0, 20.0, 115.0, 13.0) perna_direita(-20.0, 0.0, 0.0, 40.0) perna_esquerda(15.0, 0.0, 0.0, 25.0) } #end #macro rato3() union{ cabeca() corpo() braco_direito(54.0, 0.0, -92.0, 78.0) braco_esquerdo(40.0, 24.0, 120.0, 13.0) perna_direita(10.0, 0.0, 0.0, 45.0) perna_esquerda(-15.0, -13.0, -15.0, 20.0) } #end #macro rato4() union{ cabeca() corpo() braco_direito(55.0, 0.0, -91.0, 80.0) braco_esquerdo(80.0, 26.0, 125.0, 15.0) perna_direita(10.0, 13.0, 15.0, 40.0) perna_esquerda(-15.0, -26.0, -30.0, 30.0) } #end #macro rato5() union{ cabeca() corpo() braco_direito(55.0, 0.0, -90.0, 78.0) braco_esquerdo(80.0, 0.0, 130.0, 13.0) perna_direita(10.0, 13.0, 15.0, 40.0) perna_esquerda(-15.0, -26.0, -30.0, 35.0) } #end #macro rato6() union{ cabeca() corpo() braco_direito(55.0, 0.0, -91.0, 79.0) braco_esquerdo(80.0, -30.0, 135.0, 10.0) perna_direita(10.0, 13.0, 15.0, 45.0) perna_esquerda(-15.0, -26.0, -30.0, 40.0) } #end #if ( clock < 0.2000) object {rato1() scale <1.2, 1.2, 1.2> rotate y * 15 translate x - 10 } #end #if ( (clock >= 0.2000) & (clock < 0.4000) ) object {rato2() scale <1.2, 1.2, 1.2> rotate y * 20 translate x - 8 translate y + 0.3 } #end #if ( (clock >= 0.4000) & (clock < 0.6000) ) object {rato3() scale <1.2, 1.2, 1.2> rotate y * 25 translate x - 6 } #end #if ( (clock >= 0.6000) & (clock < 0.8000) ) object {rato4() scale <1.2, 1.2, 1.2> rotate y * 25 translate x - 4 } #end #if ( (clock >= 0.8000) & (clock < 1.0000) ) object {rato5() scale <1.2, 1.2, 1.2> rotate y * 25 translate x - 4 } #end #if ( clock = 1.0000 ) object {rato6() scale <1.2, 1.2, 1.2> rotate y * 25 translate x - 4 } #end // Original camera parameters: // #local cam_ctr = <0,0,0> // #local cam_vec = <-5.0,10.0,30.0> // #local cam_sky = y #include "camlight.inc" // camlight(<0,0,0>,<10,10,10>,20.0,y,1.0) camlight(<0,0,0>,<10,10,10>,20.0,y,1.0)