// Last edited on 2009-11-24 11:12:36 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 #include "nuvens.inc" #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_laranja = texture{ pigment{ color rgb < 1.00, 0.50, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_verde = texture{ pigment{ color rgb < 0.30, 0.80, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_amareloalaranjado = texture{ pigment{ color rgb < 1.00, 0.60, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_vermelha = texture{ pigment{ color rgb < 0.80, 0.00, 0.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_branca = texture{ pigment{ color rgb < 1.00, 1.00, 1.00 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca_preta = texture{ pigment{ color rgb < 0, 0, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_pele_clara = texture{ pigment{ color rgb <0.87, 0.66, 0.53 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_pele = texture{ pigment{ color rgb < 0.83, 0.55, 0.37 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_pele_escura = texture{ pigment{ color rgb < 0.80, 0.44, 0.28 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_metal = texture{ pigment{ color rgb < 0.50, 0.50, 0.50 > } finish{ diffuse 1 ambient 0.1 reflection 0.05 specular 0.8 roughness 0.005 } } #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_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 } } union{ #macro mamao() blob{ cylinder{<0, -1.8, 0>, <0, -1, 0>, 1.7, 1 texture {tx_fosca_laranja}} sphere{< 0, 0, 0>, 4, 1 texture {tx_fosca_amareloalaranjado}} cylinder{<0, 1, 0>, <0, 2, 0>, 2, 1 texture {tx_fosca_verde}} sphere{<0, 2.5, 0>, 1, -0.5} threshold 0.5 scale 0.5 } #end #macro ossinho1() blob{ sphere{<0,0,0>, 1.5, 1 texture {tx_pele} } cylinder{<0,1,0>, <0,2,0>, 1.9, 1 texture {tx_pele}} threshold 0.5 scale<1,1,0.9> } #end #macro ossinho2(beta) union{ blob{ sphere{<0,0,0>, 1.6, 1 texture {tx_pele_escura} } cylinder{<0,0.5,0>, <0,3.5,0>, 2, 1 texture {tx_pele}} sphere{<0,3.5,0>, 1.3, 1 texture {tx_pele_escura} } threshold 0.5 scale<1,1,0.9> } object{ossinho1() rotate beta*x translate 3.8*y } } #end #macro dedo(alfa, beta, pos) union{ blob{ sphere{<0,0,0>, 2.5, 1 texture {tx_pele_escura} } cylinder{<0,2,0>, <0,5,0>, 2.3, 1 texture {tx_pele} } sphere{<0,6,0>, 1.6, 1 texture {tx_pele_escura} } threshold 0.5 scale<1,1,0.9> } object{ ossinho2(beta) rotate alfa*x translate 5.8*y } translate pos*x } #end #macro dedao(alfa, beta) union{ blob{ sphere{<0,0,0>, 2.5, 1 texture {tx_pele_escura} } cylinder{<0,2,0>, <0,5,0>, 2.3, 1 texture {tx_pele} } sphere{<0,6,0>, 1.6, 1 texture {tx_pele_escura} } threshold 0.5 scale<1,1,0.9> } object{ossinho2(beta) rotate alfa*x translate 5.8*y } scale<0.8,1,1> rotate -90*y translate<0,0,0> } #end #macro palma() blob{ cylinder{<4,0,0>, <4,10,0>, 3, 1 texture{tx_pele} } cylinder{<2,0,0>, <2,11,0>, 3, 1 texture {tx_pele} } cylinder{<0,0,0>, <0,11,0>, 3, 1 texture {tx_pele} } cylinder{<-1.8,3,0>, <-2,11,0>, 3, 1 texture {tx_pele} } cylinder{<-1,1,0>, <-4,5,0>, 3, 1 texture {tx_pele} } threshold 0.5 } #end #macro mao(alfa, beta, gama) union{ object{ palma() } object{dedo(alfa, beta, -2) rotate gama*x translate 11*y } object{dedo(alfa, beta, 0) rotate gama*x translate 11*y } object{dedo(alfa, beta, 2) rotate gama*x translate 11*y } object{dedo(alfa, beta, 4) rotate gama*x translate 11*y } scale 0.5 } #end #macro anao() blob{ sphere{<0,0,0>, 8, 1 texture{tx_pele} scale<1,1,1>} sphere{<-2,2,3>, 1, 1 texture{tx_fosca_branca} } sphere{<2,2,3>, 1, 1 texture{tx_fosca_branca} } sphere{<0,0,4>, 1, 1 texture{tx_fosca_vermelha} } cylinder{<1.5,-2,3>, <-1.5,-2,3>, 1, -1 texture {tx_fosca_vermelha} } threshold 0.5 scale 0.5 } #end #macro mamao_ou_anao(F) blob{ cylinder{<0, -1.8, 0>, <0, -1, 0>, 1.7, F*1 texture {tx_fosca_laranja}} sphere{< 0, 0, 0>, 4, F*1 texture {tx_fosca_amareloalaranjado}} cylinder{<0, 1, 0>, <0, 2, 0>, 2, F*1 texture {tx_fosca_verde}} sphere{<0, 2.5, 0>, 1, F*-0.5} sphere{<3,3,0>, 1, (1-F)*1 texture{tx_fosca_vermelha} } sphere{<-3,3,0>, 1, (1-F)*1 texture{tx_fosca_vermelha} } sphere{<-2,2,3>, 1, (1-F)*1 texture{tx_fosca_preta} } sphere{<2,2,3>, 1, (1-F)*1 texture{tx_fosca_preta} } sphere{<0,0,4>, 1, (1-F)*1 texture{tx_fosca_vermelha} } cylinder{<1.5,-2,3>, <-1.5,-2,3>, 1, (1-F)*-1 texture {tx_fosca_vermelha} } sphere{<0,0,0>, 8, (1-F)*1 texture{tx_pele_clara} scale<1,1,1>} threshold 0.5 scale 0.5 rotate 90*z rotate 90*y } #end #declare c = (1 + cos(2*pi*clock))/2; #declare alfa = 30*c; #declare beta = 20*c; #declare gama = 20*c; union{ // object{ eixos(3.00) } object{ mao(alfa, beta, gama) scale 0.50 translate -3*z translate -2*y } object{ mamao_ou_anao(c) } } } // Original camera parameters: // #local cam_ctr = <0,0,0> // #local cam_loc = <14.00,7.00,7.00> // #local cam_vec = <14.00,7.00,7.00> // #local cam_sky = z #include "camlight.inc" camlight(<0,0,-1.5>,6.00,<10,7,5>,17.146,z,1.2)