// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "eixos.inc" #include "colors.inc" #include "textures.inc" #include "stones.inc" #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca2 = texture{ pigment{ color rgb < 0.70, 0.20, 0.30 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca3 = texture{ pigment{ color rgb < 0.30, 0.50, 0.40 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca4 = texture{ pigment{ color rgb < 0.15, 0.70, 0.35 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.62, 0.20 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare roleta = seed(315); #macro quadro(tt) #declare ctt = cos(2*pi*tt); #declare stt = sin(2*pi*tt); #declare att = abs(70*sin(8.9+2*pi+tt)); #declare chassi = union{ difference{ difference{ sphere{ <0,0,0>, 0.7 texture{tx_fosca}} sphere{ <0,0,0>, 0.6 } } box{ <0.3, -1, 0>, <2, 1, 0.3> } } sphere{ <0,0,0>, 0.6 texture{tx_vidro}} } #macro pe() box{<0.3, -0.15, -0.15>, <-0.1, 0.15, 0> texture{tx_fosca}} #end #macro anteperna(gama) union{ cylinder{<0, 0, 0>, <0,0,-0.7>, 0.1 texture {tx_fosca4}} sphere{<0,0,-0.7> 0.1 texture {tx_fosca4}} object{pe() rotate gama * y translate -0.7*z} } #end #macro perna(beta, gama) union{ cylinder{<0,0,0>, <0,0,-0.85>, 0.11 texture {tx_fosca2}} sphere{<0,0,-0.85> 0.11 texture {tx_fosca2}} object{anteperna(gama) rotate beta * y translate -0.85*z} } #end #macro bicho(alfa, beta, gama) union { object{chassi} sphere{<0,0,-0.7> 0.11 texture {tx_fosca}} object{perna(beta, gama) rotate alfa * y translate -0.7*z} } #end #macro interpola(ta, va, tb, vb, ttt) #declare s = (ttt - ta)/(tb - ta); ((1 - s) * va + s * vb) #end #macro armacao(fase) #local fase0 = 0.000; #local fase1 = 0.300; #local fase2 = 0.600; #local fase3 = 1.000; #declare alfa0 = -45; #declare alfa1 = -55; #declare alfa2 = -30; #declare alfa3 = -5; #declare beta0 = 120; #declare beta1 = 140; #declare beta2 = 80; #declare beta3 = 10; #declare gama0 = -45; #declare gama1 = -55; #declare gama2 = -20; #declare gama3 = 25; #declare h0 = -0.4; #declare h1 = -0.5; #declare h2 = -0.3; #declare h3 = 0; #if (fase >= fase0 & fase < fase1) #declare alf = interpola(fase0, alfa0, fase1, alfa1, fase); #declare bet = interpola(fase0, beta0, fase1, beta1, fase); #declare gam = interpola(fase0, gama0, fase1, gama1, fase); #declare hei = interpola(fase0, h0, fase1, h1, fase); #end #if (fase >= fase1 & fase < fase2) #declare alf = interpola(fase1, alfa1, fase2, alfa2, fase); #declare bet = interpola(fase1, beta1, fase2, beta2, fase); #declare gam = interpola(fase1, gama1, fase2, gama2, fase); #declare hei = interpola(fase1, h1, fase2, h2, fase); #end #if (fase >= fase2 & fase <= fase3) #declare alf = interpola(fase2, alfa2, fase3, alfa3, fase); #declare bet = interpola(fase2, beta2, fase3, beta3, fase); #declare gam = interpola(fase2, gama2, fase3, gama3, fase); #declare hei = interpola(fase2, h2, fase3, h3, fase); #end object{bicho(alf,bet,gam)} #end #macro voo(h, fase) #local fase0 = 0.000; #local fase1 = 0.250; #local fase2 = 0.500; #local fase3 = 0.750; #local fase4 = 1.000; #declare alfa0 = -5; #declare alfa1 = -10; #declare alfa2 = -20; #declare alfa3 = -25; #declare alfa4 = -45; #declare beta0 = 10; #declare beta1 = 30; #declare beta2 = 60; #declare beta3 = 100; #declare beta4 = 120; #declare gama0 = 25; #declare gama1 = 15; #declare gama2 = -5; #declare gama3 = -25; #declare gama4 = -45; #declare h0 = h; #declare h1 = h; #declare h2 = h; #declare h3 = h; #declare h4 = h; #if (fase >= fase0 & fase < fase1) #declare alf = interpola(fase0, alfa0, fase1, alfa1, fase); #declare bet = interpola(fase0, beta0, fase1, beta1, fase); #declare gam = interpola(fase0, gama0, fase1, gama1, fase); #declare hei = interpola(fase0, h0, fase1, h1, fase); #end #if (fase >= fase1 & fase < fase2) #declare alf = interpola(fase1, alfa1, fase2, alfa2, fase); #declare bet = interpola(fase1, beta1, fase2, beta2, fase); #declare gam = interpola(fase1, gama1, fase2, gama2, fase); #declare hei = interpola(fase1, h1, fase1, h2, fase); #end #if (fase >= fase2 & fase < fase3) #declare alf = interpola(fase2, alfa2, fase3, alfa3, fase); #declare bet = interpola(fase2, beta2, fase3, beta3, fase); #declare gam = interpola(fase2, gama2, fase3, gama3, fase); #declare hei = interpola(fase2, h2, fase1, h3, fase); #end #if (fase >= fase3 & fase <= fase4) #declare alf = interpola(fase3, alfa3, fase4, alfa4, fase); #declare bet = interpola(fase3, beta3, fase4, beta4, fase); #declare gam = interpola(fase3, gama3, fase4, gama4, fase); #declare hei = interpola(fase3, h3, fase1, h4, fase); #end object{bicho(alf,bet,gam) translate h*z} #end #macro armacao_geral(p, fase) object{ armacao(fase) translate p } #end #macro voo_geral(h, p, q, fase) #local r = interpola(0, p, 1, q, fase); object{ voo(h, fase) translate r } #end plane { z, -3 texture{tx_xadrez} } #local t0 = 0.000; #local t1 = 0.100; #local t2 = 0.200; #local t3 = 0.300; #local t4 = 0.400; #local t5 = 0.500; #local t6 = 0.600; #local t7 = 0.700; #local t8 = 0.800; #local t9 = 0.900; #local t10 = 1.000; #local A = <-2, 0, 0>; #local B = <-1, 0, 0>; #local C = <0, 0, 0>; #local D = <1, 0, 0>; #local E = <2, 0, 0>; #local F = <3, 0, 0>; #if(tt >= t0 & tt < t1) #local fase = interpola(t0, 0, t1, 1, tt); armacao_geral(A, fase) #end #if(tt >= t1 & tt < t2) #local fase = interpola(t1, 0, t2, 1, tt); voo_geral(fase, A, B, fase) #end #if(tt >= t2 & tt < t3) #local fase = interpola(t2, 0, t3, 1, tt); armacao_geral(B, fase) #end #if(tt >= t3 & tt < t4) #local fase = interpola(t3, 0, t4, 1, tt); voo_geral(fase, B, C, fase) #end #if(tt >= t4 & tt < t5) #local fase = interpola(t4, 0, t5, 1, tt); armacao_geral(C, fase) #end #if(tt >= t5 & tt < t6) #local fase = interpola(t5, 0, t6, 1, tt); voo_geral(fase, C, D, fase) #end #if(tt >= t6 & tt < t7) #local fase = interpola(t6, 0, t7, 1, tt); armacao_geral(D, fase) #end #if(tt >= t7 & tt < t8) #local fase = interpola(t7, 0, t8, 1, tt); voo_geral(fase, D, E, fase) #end #if(tt >= t8 & tt < t9) #local fase = interpola(t8, 0, t9, 1, tt); armacao_geral(E, fase) #end #if(tt >= t9 & tt <= t10) #local fase = interpola(t9, 0, t10, 1, tt); #local i = interpola(t9, 0, t10, 1, tt); voo_geral(i, E, F, fase) #end #end quadro(clock) #include "camlight.inc" #declare centro_cena = < -3.00, -3.00, -1.00 >; #declare raio_cena = 6.0; #declare dir_camera = < 14.00, 7.00, 4.00>; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)