// Last edited on 2003-03-19 22:46:43 by stolfi // Exercicio 3 - MC930 // Nilton Volpato - RA 003243 #include "colors.inc" #include "textures.inc" background { color Black } light_source { < 34.00, 50.00, -50.00 > color rgb < 1, 1, 1 > rotate <10,20,0> } light_source { < -44.00, 10.00, -20.00 > color rgb 0.6 * < 1, 1, 1 > rotate <10,20,0> } camera { location 1.05*< 0, 12, -25 > right <1.2,0,0> up <0,0.9,0> look_at 0 rotate <10,20,0> } // textura metalica para o macaco robo #declare textura_pelo = texture { pigment { Brown } finish { Metallic_Finish } // Diminui um pouco a reflexao. O metal do robo nao esta muito polido. finish { reflection .15 } } #declare textura_olho = texture { pigment { color White } } #declare raio_cabeca = 9; #declare cabeca = sphere { 0, raio_cabeca texture { textura_pelo } } #declare raio_orelha = 3; #declare orelha_dir = difference { sphere { 0, raio_orelha scale <1,1,.2> } sphere { 0, raio_orelha/2 scale <2,2,.2> translate <0,0,-.2> //pigment { color Yellow } } texture { textura_pelo } } #declare raio_olho = 1; #declare olho = union { sphere { 0,raio_olho texture { textura_olho } } sphere { 0, raio_olho/3 translate <0,0,-raio_olho> texture { pigment { color Black } } } } #declare boca = union { sphere { 0, 1 scale <4, 1, 1> } texture { pigment { color Red } } } #declare corpo = sphere { 0, 8/2.5 scale <1,2,1> texture { textura_pelo } } #declare braco_dir = sphere { 0, 1 scale <4,1,1> rotate <0,-30,0> rotate <0,0,30> texture { textura_pelo } } #declare perna_dir = sphere { 0, 1 scale <1,5,1> rotate <0,0,-15> texture { textura_pelo } } #declare rabo = blob { threshold .5 sphere { 0, 2, 1 scale <1,1,3> texture { textura_pelo } } sphere { 0, 2, 1 scale <1,1,3> texture { textura_pelo } rotate <120,0,0> translate <0,2.5,4> } sphere { 0, 2, 1 scale <1,1,3> texture { textura_pelo } rotate <-20,0,0> translate <0,6.5,7.5> } rotate <0,0,60> } #declare ladrilho = superellipsoid { <0.5,0.1> scale <1, .05, 1> scale 6} #declare deslocamento = 2.1*6; #declare linha = union { object { ladrilho } object { ladrilho translate z*deslocamento } object { ladrilho translate z*deslocamento*2 } object { ladrilho translate z*deslocamento*3 } object { ladrilho translate z*deslocamento*4 } object { ladrilho translate z*deslocamento*5 } object { ladrilho translate z*deslocamento*6 } object { ladrilho translate z*deslocamento*7 } object { ladrilho translate z*deslocamento*8 } object { ladrilho translate z*deslocamento*9 } object { ladrilho translate z*deslocamento*10 } object { ladrilho translate -z*deslocamento } object { ladrilho translate -z*deslocamento*2 } object { ladrilho translate -z*deslocamento*3 } object { ladrilho translate -z*deslocamento*4 } object { ladrilho translate -z*deslocamento*5 } object { ladrilho translate -z*deslocamento*6 } } union { object { linha } object { linha translate x*deslocamento } object { linha translate x*deslocamento*2 } object { linha translate x*deslocamento*3 } object { linha translate x*deslocamento*4 } object { linha translate x*deslocamento*5 } object { linha translate x*deslocamento*6 } object { linha translate x*deslocamento*7 } object { linha translate -x*deslocamento } object { linha translate -x*deslocamento*2 } object { linha translate -x*deslocamento*3 } object { linha translate -x*deslocamento*4 } object { linha translate -x*deslocamento*5 } object { linha translate -x*deslocamento*6 } object { linha translate -x*deslocamento*7 } pigment { White_Marble scale 3} finish { phong 1 phong_size 50 reflection .35 } translate <40,-14,55> } plane { y, 0 pigment { color White } finish { ambient .4 diffuse .7 } translate <0,-14,0> } union{ difference { union { object { cabeca } object { orelha_dir translate <-7,7,-3> } object { orelha_dir translate <-7,7,-3> scale <-1,1,1> } // vira orelha esquerda object { olho translate <-3,5,-7> } object { olho translate <-3,5,-7> scale <-1,1,1> } } object { boca translate <0,0,-9> } scale <.3,.3,.3> translate <0,8.5,0> } object { corpo } object { braco_dir translate <-4,3,-2 > } object { braco_dir translate <-4,3,-2> scale <-1,1,1> } // vira braco esquerdo object { perna_dir translate <-2.5,-10,0> } object { perna_dir translate <-2.5,-10,0> scale <-1,1,1>} // vira perna esquerda object { rabo scale .7 translate <0,-1.5,4> } }