// Last edited on 2007-07-23 14:36:19 by stolfi // Processed by remove-cam-lights #declare angulo_rotacao_cabeca = 10; #declare angulo_inclinacao_cabeca = 30 ; #declare angulo_abertura_braco_direito = -120 ; #declare angulo_inclinacao_braco_direito = 60 ; #declare angulo_inclinacao_antebraco_direito = 60 ; #declare angulo_abertura_braco_esquerdo = 30; #declare angulo_inclinacao_braco_esquerdo = 120; #declare angulo_inclinacao_antebraco_esquerdo = 10; #declare angulo_inclinacao_perna_direita = -30; #declare angulo_inclinacao_joelho_direito = -60; #declare angulo_inclinacao_perna_esquerda = 60; #declare angulo_inclinacao_joelho_esquerdo = -10; #declare angulo_inclinacao_cauda = -10; global_settings { max_trace_level 12 } #declare tinta_xadrez = texture { pigment { checker color rgb <0.40,0.50,0.60>, color rgb <0.90,0.95,1.00> } finish { ambient 0.6 diffuse 0.4 } } background{ color rgb < 0.75, 0.80, 0.85 > } #declare tinta_pele = texture { pigment { color rgb < 0.80, 0.70, 0.55 > } finish { ambient 0.2 diffuse 0.8 phong 0.5 reflection 0.05 roughness 0.005 brilliance 1 } } #declare tinta_focinho = texture { pigment { color rgb < 0.00, 0.00, 0.00 > } finish { ambient 0.2 diffuse 0.8 phong 4 reflection 0.2 roughness 0.005 brilliance 1 } } #declare tinta_orelha = texture { pigment { color rgb < 8.00, 4.00, 3.00 > } finish { ambient 0.1 diffuse 0.1 phong 0.5 reflection 0.05 roughness 0.005 brilliance 1 } } #declare chao = box { < -8, -8, -1 >, < 8, 8, 0 > texture { pigment { color rgb < 0.10, 0.10, 0.10 > } finish { ambient 0.6 diffuse 0.8 phong 10 reflection 0.3 roughness 0.005 brilliance 10 } } } #declare cabeca_1 = cone { <0, 0, 0>, 1 <0, 4, 0>, 0 texture { tinta_pele } } #declare cabeca_2 = sphere { < 0.0, -0.40, 0 >, 1.1 texture { tinta_pele } } #declare focinho = sphere { < 0.0, 3.6, 0 >, 0.5 texture { tinta_focinho } } #declare orelha = difference { object { sphere { < 0, 0, 0 >, 1.1 texture { tinta_pele } } } object { sphere { < 0, 1.60, 0 >, 2 texture { tinta_orelha } } } } #declare cabeca = union { object { cabeca_1 } object { cabeca_2 } object { focinho } object { orelha translate <-1.2, -0.70, 0.8> } object { orelha translate <1.2, -0.70, 0.8> } } #declare pescoco = cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 1.60 >, 0.50 texture { tinta_pele } } #declare corpo = union { object { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, 3.0 >, 1.2 texture { tinta_pele } } } object { sphere { < 1.4, 0, 2.4 >, 1 texture { tinta_pele } } } object { sphere { < -1.4, 0, 2.4 >, 1 texture { tinta_pele } } } object { sphere { < 0.5, 0, -0.40 >, 1 texture { tinta_pele } } } object { sphere { < -0.5, 0, -0.40 >, 1 texture { tinta_pele } } } object { sphere { < 0, -0.6, -0.20 >, 0.8 texture { tinta_pele } } } } #declare antebraco = union { object { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } } object { sphere { < 0, 0, -3.4 >, 0.8 texture { tinta_pele } } } } #macro braco (angulo_antebraco) union { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } object { sphere { < 0, 0, -3.4 >, 0.8 texture { tinta_pele } } } object { antebraco rotate angulo_antebraco * x translate -3.4 * z } } #end #declare canela_peh = union { object { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } } object { cylinder { < 0.00, 0.00, -3.00 >, < 0.00, 2.00, -3.0 >, 0.5 texture { tinta_pele } } } } #macro perna (angulo_canela_peh) union { cylinder { < 0.00, 0.00, 0.00 >, < 0.00, 0.00, -3.0 >, 0.5 texture { tinta_pele } } object { sphere { < 0, 0, -3.4 >, 0.8 texture { tinta_pele } } } object { canela_peh rotate angulo_canela_peh * x translate -3.4 * z } } #end #macro rato(ang_cabeca_a, ang_cabeca_b, ang_braco_d1, ang_braco_d2, ang_antebraco_d, ang_braco_e1, ang_braco_e2, ang_antebraco_e, ang_perna_d, ang_canela_peh_d, ang_perna_e, ang_canela_peh_e, ang_cauda) union { object { cabeca rotate ang_cabeca_a * z rotate ang_cabeca_b * x translate <0, 0.4, 11.6> } object { pescoco translate <0, 0, 9.4>} object { corpo translate <0, 0, 7> } object { braco(ang_antebraco_d) rotate ang_braco_d1 * y rotate ang_braco_d2 * x translate <1.8, 0, 9.6> } object { braco(ang_antebraco_e) rotate ang_braco_e1 * y rotate ang_braco_e2 * x translate <-1.8, 0, 9.6> } object { perna(ang_canela_peh_d) rotate ang_perna_d * x translate <0.5, 0, 6.4> } object { perna(ang_canela_peh_e) rotate ang_perna_e * x translate <-0.5, 0, 6.4> } object { cylinder { < 0, 0, 0 >, < 0.0, -8, 0 >, 0.2 texture { tinta_pele } rotate ang_cauda * x translate <0, -0.6, 6.8> } } } #end object { chao } object { rato (angulo_rotacao_cabeca, angulo_inclinacao_cabeca, angulo_abertura_braco_direito, angulo_inclinacao_braco_direito, angulo_inclinacao_antebraco_direito, angulo_abertura_braco_esquerdo, angulo_inclinacao_braco_esquerdo, angulo_inclinacao_antebraco_esquerdo, angulo_inclinacao_perna_direita, angulo_inclinacao_joelho_direito, angulo_inclinacao_perna_esquerda, angulo_inclinacao_joelho_esquerdo, angulo_inclinacao_cauda) } // Original camera parameters: // #local cam_ctr = <0.00,0.00,8.00> // #local cam_vec = (<12.00,12.0,12.00>-<0.00,0.00,8.00>) // #local cam_sky = z #include "camlight.inc" camlight(<0.00,0.00,8.00>,<7,10,5>,25.0,z,1.0)