// Cores background { color rgb < 1.00, 1.00, 1.00 > } #declare vermelho = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } } #declare verde = texture { pigment { color rgb < 0.00, 1.00, 0.00 > } } #declare azul = texture { pigment { color rgb < 0.00, 0.00, 1.00 > } } #declare cinza = texture { pigment { color rgb < 0.33, 0.33, 0.33 > } } #declare branco = texture { pigment { color rgb < 1.00, 1.00, 1.00 > } } #declare Metallic_Finish = finish { metallic ambient 0.1 diffuse 0.65 specular 0.85 roughness 0.01 reflection 0.45 brilliance 1.5 } #declare Aluminum = texture { pigment { rgb <0.55, 0.5, 0.45> } finish { Metallic_Finish } } #declare Starfield = texture { pigment { granite color_map { [0.72 rgb 0.00] [0.72 rgb 0.20] [0.75 rgb 0.40] [0.78 rgb 0.60] [0.81 rgb 0.80] [0.85 rgb 0.95] [0.91 rgb 1.00] [0.91 rgb 0.00] } scale 0.015 } finish { ambient 1 } } // Descricao da cena #include "eixos.inc" #macro pe() box { <-0.50, -0.50, -0.25> <0.50, 1.50, 0.25> texture { cinza } } #end #macro canela(a) union { cylinder { <0.00, 0.00, 0.50> <0.00, 0.00, -2.50>, 0.50 texture { vermelho } } object { pe() rotate a * x translate -2.50 * z } } #end #macro coxa(a, b) union { cylinder { <0.00, 0.00, 0.50> <0.00, 0.00, -2.50>, 0.50 texture { azul } } object { canela(a) rotate b * x translate -2.50 * z } } #end #macro bicho(a, b, c, h) union { sphere { <0.00, 0.00, 2.00>, 2.00 texture { verde } } object { coxa(a, b) rotate c * x } translate h * z } #end #macro interpola(ta, va, tb, vb, tt) #local s = (tt - ta) / (tb - ta); ((1 - s) * va + s * vb) #end #declare t0 = 0.000; #declare t1 = 0.250; #declare t2 = 0.500; #declare t3 = 0.750; #declare t4 = 1.000; #if ((clock >= t0) & (clock <= t1)) #declare a = 0; #declare b = interpola(t0, -45, t1, -30, clock); #declare c = interpola(t0, -45, t1, -20, clock); #declare h = 0; #end #if ((clock >= t1) & (clock <= t2)) #declare a = 0; #declare b = interpola(t1, -30, t2, -15, clock); #declare c = interpola(t1, -20, t2, 0, clock); #declare h = 0; #end #if ((clock >= t2) & (clock <= t3)) #declare a = interpola(t2, 0, t3, 30, clock); #declare b = -15; #declare c = interpola(t2, 0, t3, -15, clock); #declare h = interpola(t2, 0, t3, 2.00, clock); #end #if ((clock >= t3) & (clock <= t4)) #declare a = interpola(t3, 30, t4, 0, clock); #declare b = interpola(t3, -15, t4, -45, clock); #declare c = interpola(t3, -15, t4, -45, clock); #declare h = interpola(t3, 2.00, t4, 0.00, clock); #end union { object { bicho(a, b, c, h) } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 12.00; #declare dir_camera = < 7.00, 14.00, 4.00 >; #declare dist_camera = 12.00; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)