// Last edited on 2013-12-11 11:17:03 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_red = texture{ pigment{ color rgb < 0.90, 0.05, 0.05 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_yellow = texture{ pigment{ color rgb < 0.93, 0.79, 0.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_green = texture{ pigment{ color rgb < 0.05, 0.90, 0.05 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_blue = texture{ pigment{ color rgb < 0.05, 0.05, 0.90 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } 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 raio = 2.000; #declare cabeca= sphere{ < 0.00, 0.00, 0.00 > 2 texture{tx_blue} } #declare bola= sphere{ < 0.00, 0.00, 0.00> 0.4 texture{tx_green} } #macro interpola(tt) union{ #local p0 = <8,0,0>; #local p1 = <5,8,0>; #local p2 = <2,8,0>; #local q1 = <-4,-8,0>; #local q2 = <-7,-8,0>; #local q3 = <-10,0,0>; #local p3 = (p2+q1)/2; #while (tt<=1) #local var = interpola4(p0,p1,p2,p3,tt); object{ bola translate var } #local var2 = interpola4(p3,q1,q2,q3,tt); object{ bola translate var2 } #local tt=tt+0.001; #end } #end #macro tentaculo(p0,p1,p2,q1,q2,q3,r0,r1,tt,temp) union{ #local p3 = (p2+q1)/2; #while (tt<=1) #local raio = (1-tt)*r0 + tt*((r0+r1)/2); #local raio2 = (1-tt)*((r0+r1)/2) + tt*r1; #local var = interpola4(p0,p1,p2,p3,tt); object{ bola translate var*temp scale raio} #local var2 = interpola4(p3,q1,q2,q3,tt); object{ bola translate var2*temp scale raio2} #local tt=tt+0.001; #end } #end #macro interpola2(p0,p1,tt) #local var = ((1-tt)*p0 + tt*p1); var #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 #declare param0 = array[18]; #declare param1 = array[18]; #declare param2 = array[18]; #declare param3 = array[18]; #declare par0 = <8,0,0>; #declare par1 = <5,8,0>; #declare par2 = <2,8,0>; #declare qar1 = <-4,-8,0>; #declare qar2 = <-7,-8,0>; #declare qar3 = <-10,0,0>; #declare param0[0] = par0.x; #declare param0[1] = par0.y; #declare param0[2] = par0.z; #declare param0[3] = par1.x; #declare param0[4] = par1.y; #declare param0[5] = par1.z; #declare param0[6] = par2.x; #declare param0[7] = par2.y; #declare param0[8] = par2.z; #declare param0[9] = qar1.x; #declare param0[10] = qar1.y; #declare param0[11] = qar1.z; #declare param0[12] = qar2.x; #declare param0[13] = qar2.y; #declare param0[14] = qar2.z; #declare param0[15] = qar3.x; #declare param0[16] = qar3.y; #declare param0[17] = qar3.z; #declare param1[0] = par0.x; #declare param1[1] = par0.y; #declare param1[2] = par0.z; #declare param1[3] = par1.x; #declare param1[4] = par1.y; #declare param1[5] = par1.z; #declare param1[6] = par2.x; #declare param1[7] = par2.y; #declare param1[8] = par2.z; #declare param1[9] = qar1.x; #declare param1[10] = qar1.y; #declare param1[11] = qar1.z; #declare param1[12] = qar2.x; #declare param1[13] = qar2.y; #declare param1[14] = qar2.z; #declare param1[15] = qar3.x; #declare param1[16] = qar3.y; #declare param1[17] = qar3.z; #declare param2[0] = par0.x; #declare param2[1] = par0.y; #declare param2[2] = par0.z; #declare param2[3] = par1.x; #declare param2[4] = par1.y; #declare param2[5] = par1.z; #declare param2[6] = par2.x; #declare param2[7] = par2.y; #declare param2[8] = par2.z; #declare param2[9] = qar1.x; #declare param2[10] = qar1.y; #declare param2[11] = qar1.z; #declare param2[12] = qar2.x; #declare param2[13] = qar2.y; #declare param2[14] = qar2.z; #declare param2[15] = qar3.x; #declare param2[16] = qar3.y; #declare param2[17] = qar3.z; #declare param3[0] = par0.x; #declare param3[1] = par0.y; #declare param3[2] = par0.z; #declare param3[3] = par1.x; #declare param3[4] = par1.y; #declare param3[5] = par1.z; #declare param3[6] = par2.x; #declare param3[7] = par2.y; #declare param3[8] = par2.z; #declare param3[9] = qar1.x; #declare param3[10] = qar1.y; #declare param3[11] = qar1.z; #declare param3[12] = qar2.x; #declare param3[13] = qar2.y; #declare param3[14] = qar2.z; #declare param3[15] = qar3.x; #declare param3[16] = qar3.y; #declare param3[17] = qar3.z; #macro tentaculo_animado(param0,param1,param2,param3,tempo) #local n=18; #local param=array[n]; #local i=0; #while(i; #local p1=; #local p2=; #local q1=; #local q2=; #local q3=; tentaculo(p0,p1,p2,q1,q2,q3,0.2,0.8,0,clock) #end union{ object {cabeca} union{tentaculo_animado(param0,param1,param2,param3,clock) rotate < 0,0,0> translate<-3,0,0>} union{tentaculo_animado(param0,param1,param2,param3,clock) rotate < 0,180,0> translate<3,0,0>} union{tentaculo_animado(param0,param1,param2,param3,clock) translate<-3,1.5,0> rotate < 15,120,0>} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 15.0; #declare dir_camera = < 2,7,4>; #declare dist_camera = 50.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)