// Last edited on 2009-11-23 23:07:22 by stolfilocal // Processed by remove-cam-lights #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end background{ color rgb < 1.00, 1.00, 1.00 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.50, 0.50, 0.50 > } finish{ ambient 0.5 diffuse 0.5 reflection 0.25 * <1,1,1> } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 1.00, 1.00 > } finish{ ambient 0.1 diffuse 0.1 reflection 0.8 * <1,1,1> } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.90, 0.70 > } finish{ diffuse 0.1 reflection 0.8*< 1.00, 0.90, 0.70 > ambient 0.1 } } #declare tx_furo = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > filter 0.70 } finish{ diffuse 0.01 ambient 0.02} } #declare tx_vidro = texture{ pigment{ color rgb < 0.97, 0.98, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_world = texture{ pigment{ color rgb < 1.0, 1.0, 1.0 > } finish{ diffuse 0.01 ambient 0.02} } #declare tx_mamao = texture{ pigment{ color rgb < 1.0, 0.55, 0.0 > } finish{ ambient 0.5 diffuse 0.5 } } #declare tx_mao = texture{ pigment{ color rgb < 0.75, 0.425, 0.0 > } finish{ ambient 0.5 diffuse 0.5 } } #declare tx_boca = texture{ pigment{ color rgb < 0.75, 0.00, 0.0 > } finish{ ambient 0.5 diffuse 0.75 } } #declare tx_olho = texture{ pigment{ color rgb < 0.00, 1.00, 1.00 > } finish{ ambient 0.5 diffuse 0.75 } } #declare tx_orelha = texture{ pigment{ color rgb < 1.00, 1.00, 0.00 > } finish{ ambient 0.5 diffuse 0.75 } } #declare raio = 2.000; #macro mamao () union{ blob{ sphere { < 0.000, 0.000, 0.000 >, 1.00, 5.00 } sphere { < 0.000, 0.000, 0.500 >, 0.75, 5.00 } sphere { < 0.000, 0.000, -0.500 >, 0.75, 5.00 } sphere { < 0.000, 0.000, 0.875 >, 0.50, -1.5 } sphere { < 0.000, 0.000, -0.875 >, 0.50, -1.5 } threshold 0.5 texture {tx_mamao} } } #end #macro dedo (comp1,comp2,comp3,raio) union{ blob{ sphere { < 0.000, 0.000, 0.000 >, raio*1.2, 5 } cylinder { < 0.000, 0.000, 0.000 >, < comp1, 0.000, 0.100 >, raio, 4 } threshold 0.5 } blob{ sphere { < comp1, 0.000, 0.100 >, raio*1.2, 5 } cylinder { < comp1, 0.000, 0.100 >, < comp1+comp2, 0.000, 0.200 >, raio, 4 } threshold 0.5 } blob{ sphere { < comp1+comp2, 0.000, 0.200 >, raio*1.2, 5 } cylinder { < comp1+comp2, 0.000, 0.200 >, < comp1+comp2+comp3, 0.000, 0.300 >, raio, 4 } threshold 0.5 } } texture {tx_mao} #end #macro polegar (comp1,comp2,raio) union{ blob{ sphere { < 0.000, 0.000, 0.000 >, raio*1.2, 5 } cylinder { < 0.000, 0.000, 0.000 >, < comp1, 0.000, 0.100 >, raio, 4 } threshold 0.5 } blob{ sphere { < comp1, 0.000, 0.100 >, raio*1.2, 5 } cylinder { < comp1, 0.000, 0.100 >, < comp1+comp2, 0.000, 0.200 >, raio, 4 } threshold 0.5 } } texture {tx_mao} #end #macro mao (c) union{ blob{ sphere { < 0.000, 0.000, 0.000 >, 1.00, 5.00 scale < 1.0, 0.3, 1.0 >} sphere { < 0.000, 0.000, 0.500 >, 0.85, 5.00 scale < 1.0, 0.3, 1.0 >} sphere { < 0.000, 0.000, -0.500 >, 0.65, 5.00 scale < 1.0, 0.3, 1.0 >} sphere { < 0.000, 0.000, 0.950 >, 0.50, -1.5 scale < 1.0, 0.3, 1.0 >} sphere { < 0.000, 0.000, -0.975 >, 0.50, -1.5 scale < 1.0, 0.5, 1.0 >} threshold 0.5 texture {tx_mamao} } object{ dedo(0.375,0.375,0.25,0.125) rotate < -90.00, -90+30*c, 0.00 > translate < 0.550, 0.000, 0.700 > } object{ dedo(0.50,0.50,0.40,0.125) rotate < -90.00, -90+15*c, 0.00 > translate < 0.200, 0.000, 0.800 > } object{ dedo(0.55,0.55,0.45,0.125) rotate < -90.00, -90.00, 0.00 > translate < -0.150, 0.000, 0.800 > } object{ dedo(0.45,0.45,0.30,0.125) rotate < -90.00, -90-15*c, 0.00 > translate < -0.500, 0.000, 0.700 > } object{ polegar(0.45,0.45,0.125) rotate < -90.00, -90-40*c, 0.00 > translate < -0.750, 0.000, 0.000 > } } #end #macro anao() union{ blob{ sphere { < 0.000, 0.000, 0.000 >, 2.00, 1.00 texture {tx_mamao} } sphere { < 0.000, 1.000, 0.000 >, 0.25, 1.00 texture {tx_mamao} } sphere { < 0.350, 0.750, 0.500 >, 0.25, 1.00 texture {tx_olho} } sphere { < -0.350, 0.750, 0.500 >, 0.25, 1.00 texture {tx_olho} } cylinder { < 0.350, 0.700, -0.500 >, < -0.350, 0.700, -0.500 >, 0.40, -0.75 texture {tx_boca} } sphere { < 0.900, 0.250, 0.600 >, 0.25, 1.00 texture {tx_orelha} } sphere { < -0.900, 0.250, 0.600 >, 0.25, 1.00 texture {tx_orelha} } threshold 0.5 translate z*4 } } #end #macro mamao_ou_anao(F) blob{ sphere { < 0.000, 0.000, 0.000 >, 1.00, F*5.00 texture {tx_mamao}} sphere { < 0.000, 0.000, 0.500 >, 0.75, F*5.00 texture {tx_mamao}} sphere { < 0.000, 0.000, -0.500 >, 0.75, F*5.00 texture {tx_mamao}} sphere { < 0.000, 0.000, 0.875 >, 0.50, F*-1.5 texture {tx_mamao}} sphere { < 0.000, 0.000, -0.875 >, 0.50, F*-1.5 texture {tx_mamao}} sphere { < 0.000, 0.000, 0.000 >, 2.00, (1-F)*1.00 texture {tx_mamao} } sphere { < 0.000, 1.000, 0.000 >, 0.25, (1-F)*1.00 texture {tx_mamao} } sphere { < 0.350, 0.750, 0.500 >, 0.25, (1-F)*1.00 texture {tx_olho} } sphere { < -0.350, 0.750, 0.500 >, 0.25, (1-F)*1.00 texture {tx_olho} } cylinder { < 0.350, 0.700, -0.500 >, < -0.350, 0.700, -0.500 >, 0.40, (1-F)*-0.75 texture {tx_boca}} sphere { < 0.900, 0.250, 0.600 >, 0.25, (1-F)*1.00 texture {tx_orelha}} sphere { < -0.900, 0.250, 0.600 >, 0.25, (1-F)*1.00 texture {tx_orelha}} threshold 0.5 } #end union { object{ mamao_ou_anao ( (1+cos(2*pi*clock))/2 ) } object{ mao ( (1+cos(2*pi*clock))/2 ) translate -2*y } } // Original camera parameters: // #local cam_ctr = <0,0,0> // #local cam_loc = <10.00,10.00,0.00> // #local cam_vec = <10.00,10.00,0.00> // #local cam_sky = z #include "camlight.inc" camlight(<0,-1,0.5>,3.50,<7,10,2>,12.00,z,1.2)