// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.10, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_plastico_amarelo = texture{ pigment{ color rgb < 1.0, 0.65, 0 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 0.00, 1.00, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 0.5, 0.5, 0.5 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > 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.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare esfera = sphere { <0.0, 0.0, 0.0>, 1.0 } #macro interpola2(p0, p1, tt) ((1 - tt) * p0 + tt * p1) #end #macro interpola4(p0, p1, p2, p3, tt) #local p01 = interpola2(p0, p1, tt); #local p12 = interpola2(p1, p2, tt); #local p23 = interpola2(p2, p3, tt); #local p012 = interpola2(p01, p12, tt); #local p123 = interpola2(p12, p23, tt); #local p0123 = interpola2(p012, p123, tt); p0123 #end #macro curva (p0,r0,p1,r1,p2,r2,p3,r3) #local tt = 0.0; #while (tt <= 1.0) object{ sphere { <0,0,0>, interpola4(r0,r1,r2,r3,tt) } translate interpola4(p0,p1,p2,p3,tt) texture{ tx_plastico } } #local tt = tt + 0.01; #end #end #macro tentaculo (p0,p1,p2,r0,q1,q2,q3,r1) #local raio0 = interpola2(r0,r1,0); #local raio1 = interpola2(r0,r1,0.16); #local raio2 = interpola2(r0,r1,0.32); #local raio3 = interpola2(r0,r1,0.5); #local raio4 = interpola2(r0,r1,0.833); #local raio5 = interpola2(r0,r1,0.666); #local raio6 = interpola2(r0,r1,1.0); curva(p0,raio0,p1,raio1,p2,raio2,(p2+q1)/2,raio3) curva((p2+q1)/2,raio3,q1,raio4,q2,raio5,q3,raio6) #end #declare s = sin(45*clock); #declare c = cos(45*clock); #declare r0 = 1; #declare r1 = 0.1; #declare r2 = 0.2; #declare r3 = 0.1; #declare p0_1 = <0,0,sin(90*clock)>; #declare p1_1 = <0.5,0.5,2*cos(90*clock)>; #declare p2_1 = <1.5*sin(90*clock),1.5,3>; #declare p3_1 = <2,2*sin(90*clock),1>; #declare q0_1 = <2.5*s,2.5,3>; #declare q1_1 = <3,3*c,1>; #declare q2_1 = <3.5*c,3.5,1>; #declare q3_1 = <4,5*s,1>; #declare s0_1 = <0,0,s>; #declare s1_1 = <-0.5*sin(90*clock),-0.5,2>; #declare s2_1 = <-1.5,-1.5,3>; #declare s3_1 = <-2,-3,1*cos(90*clock)>; #declare t0_1 = <-2.5*c,-2.5,3>; #declare t1_1 = <-3,-3,1*s>; #declare t2_1 = <-3.5,-3.5*s,1>; #declare t3_1 = <-2,-5,2*s>; #declare v0_1 = <0,0,c>; #declare v1_1 = <0.5,-0.5*c,2>; #declare v2_1 = <1.5,-1.5*c,3>; #declare v3_1 = <2,-2,1*c>; #declare x0_1 = <2.5,-2.5,3*s>; #declare x1_1 = <3,-3*s,1>; #declare x2_1 = <3.5,-3.5,1*c>; #declare x3_1 = <4*c,-4,0>; #declare p0_2 = <0,0,sin(90*clock)>; #declare p1_2 = <0.5,0.5,2*cos(90*clock)>; #declare p2_2 = <1.5*sin(90*clock),1.5,3>; #declare p3_2 = <2,2*sin(90*clock),1>; #declare q0_2 = <2.5*c,2.5*s,3>; #declare q1_2 = <3,3*s,1*s>; #declare q2_2 = <3.5*c,3.5*c,1>; #declare q3_2 = <4,5*s,1>; #declare s0_2 = ; #declare s1_2 = <-0.5*sin(90*clock),-0.5,2>; #declare s2_2 = <-1.5,-1.5,3>; #declare s3_2 = <-2,-3,1*cos(90*clock)>; #declare t0_2 = <-2.5,-2.5,3>; #declare t1_2 = <-3*s,-3,1>; #declare t2_2 = <-3.5*c,-3.5,1>; #declare t3_2 = <-2,-5,2>; #declare v0_2 = <0,0,s>; #declare v1_2 = <0.5,-0.5*s,2>; #declare v2_2 = <1.5,-1.5,3*c>; #declare v3_2 = <2,-2,1>; #declare x0_2 = <2.5,-2.5,3*s>; #declare x1_2 = <3,-3,1*s>; #declare x2_2 = <3.5*c,-3.5,1>; #declare x3_2 = <4,-4,c>; #declare p0_3 = <0,0,sin(90*clock)>; #declare p1_3 = <0.5,0.5,2*cos(90*clock)>; #declare p2_3 = <1.5*sin(90*clock),1.5,3>; #declare p3_3 = <2,2*sin(90*clock),1>; #declare q0_3 = <2.5,2.5,3>; #declare q1_3 = <3,3,1>; #declare q2_3 = <3.5,3.5,1>; #declare q3_3 = <4,5,1>; #declare s0_3 = <0,0,0>; #declare s1_3 = <-0.5*sin(90*clock),-0.5,2>; #declare s2_3 = <-1.5,-1.5,3>; #declare s3_3 = <-2,-3,1*cos(90*clock)>; #declare t0_3 = <-2.5,-2.5,3*c>; #declare t1_3 = <-3,-3*s,1>; #declare t2_3 = <-3.5,-3.5*s,1>; #declare t3_3 = <-2,-5*c,2>; #declare v0_3 = <0,0,0>; #declare v1_3 = <0.5,-0.5,2*c>; #declare v2_3 = <1.5,-1.5,3*c>; #declare v3_3 = <2,-2,1*s>; #declare x0_3 = <2.5*s,-2.5,3>; #declare x1_3 = <3,-3*c,1>; #declare x2_3 = <3.5,-3.5*s,1>; #declare x3_3 = <4,-4,c>; #declare p0_4 = <0,0,sin(90*clock)>; #declare p1_4 = <0.5,0.5,2*cos(90*clock)>; #declare p2_4 = <1.5*sin(90*clock),1.5,3>; #declare p3_4 = <2,2*sin(90*clock),1>; #declare q0_4 = <2.5,2.5,3>; #declare q1_4 = <3*s,3,1*s>; #declare q2_4 = <3.5*c,3.5,1>; #declare q3_4 = <4,5,1>; #declare s0_4 = <0,0,0>; #declare s1_4 = <-0.5*sin(90*clock),-0.5,2>; #declare s2_4 = <-1.5,-1.5,3>; #declare s3_4 = <-2,-3,1*cos(90*clock)>; #declare t0_4 = <-2.5,-2.5*s,3>; #declare t1_4 = <-3,-3*c,1>; #declare t2_4 = <-3.5,-3.5*s,1>; #declare t3_4 = <-2,-5,2*c>; #declare v0_4 = <0,0,0>; #declare v1_4 = <0.5*c,-0.5,2>; #declare v2_4 = <1.5,-1.5*s,3>; #declare v3_4 = <2,-2,1*s>; #declare x0_4 = <2.5,-2.5*s,3>; #declare x1_4 = <3,-3,1*c>; #declare x2_4 = <3.5,-3.5*c,1>; #declare x3_4 = <4,-4*s,0>; #declare nq = 3; // número de quadros chave #declare nt = 3; // número de tentáculos #declare np = 6; // número de parametros de cada tentáculo #declare d = array[nq+1]; // tempo de cada quadro #declare q = array[nq+1][nt][np]; // parametros de cada tentáculo em cada quadro chave #declare d[0] = 0; #declare d[1] = 0.3; #declare d[2] = 0.7; #declare d[3] = 1; #declare q[0][0][0] = p0_1; #declare q[0][0][1] = p1_1; #declare q[0][0][2] = p2_1; #declare q[0][0][3] = q1_1; #declare q[0][0][4] = q2_1; #declare q[0][0][5] = q3_1; #declare q[0][1][0] = q1_1; #declare q[0][1][1] = q2_1; #declare q[0][1][2] = q3_1; #declare q[0][1][3] = p0_1; #declare q[0][1][4] = p1_1; #declare q[0][1][5] = p2_1; #declare q[0][2][0] = p0_1; #declare q[0][2][1] = q1_1; #declare q[0][2][2] = p1_1; #declare q[0][2][3] = p1_1; #declare q[0][2][4] = q2_1; #declare q[0][2][5] = q3_1; #declare q[1][0][0] = s0_2; #declare q[1][0][1] = s1_2; #declare q[1][0][2] = s2_2; #declare q[1][0][3] = q1_2; #declare q[1][0][4] = q2_2; #declare q[1][0][5] = q3_2; #declare q[1][1][0] = q1_2; #declare q[1][1][1] = q2_2; #declare q[1][1][2] = q3_2; #declare q[1][1][3] = s0_2; #declare q[1][1][4] = s1_2; #declare q[1][1][5] = s2_2; #declare q[1][2][0] = s1_2; #declare q[1][2][1] = s2_2; #declare q[1][2][2] = s0_2; #declare q[1][2][3] = q2_2; #declare q[1][2][4] = q1_2; #declare q[1][2][5] = q3_2; #declare q[2][0][0] = t0_3; #declare q[2][0][1] = t1_3; #declare q[2][0][2] = t2_3; #declare q[2][0][3] = q1_3; #declare q[2][0][4] = q2_3; #declare q[2][0][5] = q3_3; #declare q[2][1][0] = q1_3; #declare q[2][1][1] = q2_3; #declare q[2][1][2] = q3_3; #declare q[2][1][3] = t0_3; #declare q[2][1][4] = t1_3; #declare q[2][1][5] = t2_3; #declare q[2][2][0] = t3_3; #declare q[2][2][1] = t2_3; #declare q[2][2][2] = t1_3; #declare q[2][2][3] = q3_3; #declare q[2][2][4] = q2_3; #declare q[2][2][5] = q1_3; #declare q[3][0][0] = x0_4; #declare q[3][0][1] = x1_4; #declare q[3][0][2] = x2_4; #declare q[3][0][3] = q1_4; #declare q[3][0][4] = q2_4; #declare q[3][0][5] = q3_4; #declare q[3][1][0] = q1_4; #declare q[3][1][1] = q2_4; #declare q[3][1][2] = q3_4; #declare q[3][1][3] = x0_4; #declare q[3][1][4] = x1_4; #declare q[3][1][5] = x2_4; #declare q[3][2][0] = x1_4; #declare q[3][2][1] = x2_4; #declare q[3][2][2] = x0_4; #declare q[3][2][3] = q1_4; #declare q[3][2][4] = q2_4; #declare q[3][2][5] = q3_4; #macro partition_time(time) #switch(time) #range(0,0.3) #declare part = 0; #break #range(0.3,0.7) #declare part = 1; #break #range(0.7,1) #declare part = 2; #break #range(1,1) #declare part = 3; #break #end part #end #macro polvo_quadro(i, j) tentaculo(q[i][j][0],q[i][j][1],q[i][j][2],r0,q[i][j][3],q[i][j][4],q[i][j][5],r1) #end union { polvo_quadro(partition_time(clock),0) polvo_quadro(partition_time(clock),1) polvo_quadro(partition_time(clock),2) } #include "camlight.inc" #declare centro_cena = < 0.00, 2.00, 0.00 >; #declare raio_cena = 12.0; #declare dir_camera = < 2.00, 2.10, 2.00 >; #declare dist_camera = 15.0; #declare intens_luz = 0.60; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)