// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 1.0, 1.0, 1.0 > } #declare tx_red = texture{ pigment{ color rgb < 0.90, 0.20, 0.20 > } finish{ diffuse 0.8 ambient 0.4 specular 0.5 roughness 0.005 } } #declare tx_blue = texture{ pigment{ color rgb < 0.30, 0.30, 1.0 > } finish{ diffuse 0.8 ambient 0.5 specular 0.7777777 roughness 0.005 } } #declare tx_green = texture{ pigment{ color rgb < 0.18, 0.80, 0.18 > } finish{ diffuse 0.8 ambient 0.4 specular 0.5 roughness 0.005 } } #declare tx_steel = texture{ pigment { rgb <0.55, 0.5, 0.45> } finish { metallic ambient 0.1 diffuse 0.65 specular 0.85 roughness 0.01 reflection 0.45 brilliance 1.5} } #declare tx_black = texture{ pigment{ color rgb < 0.60, 0.30, 0.60 > } finish{ diffuse 0.5 ambient 0.2 } } #declare tx_glass = 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_checkers = 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 zero = 0.0000001; #declare rseed = seed(10); #declare raio = 2.000; #declare a1 = -((2*clock-1)*(2*clock-1))+1; #declare a2 = -a1; #declare p0 = <0,0,0>; #declare p1 = <0.5,0.5*a1,2>; #declare p2 = <1.5,1.5*a2,3>; #declare p3 = <2*a1,2,1>; #declare q0 = <2.5,2.5*a1,3>; #declare q1 = <3,3*a2,1>; #declare q2 = <3.5,3.5,1*a1>; #declare q3 = <4*a1,5,1>; #declare s0 = <0,0,0>; #declare s1 = <-0.5,-0.5*a1,2>; #declare s2 = <-1.5,-1.5*a2,3>; #declare s3 = <-2*a1,-3,1>; #declare t0 = <-2.5,-2.5*a2,3>; #declare t1 = <-3*a1,-3,1>; #declare t2 = <-3.5*a2,-3.5,1>; #declare t3 = <-2,-5*a2,2>; #declare v0 = <0,0,0>; #declare v1 = <0.5,-0.5,2*a2>; #declare v2 = <1.5,-1.5,3*a1>; #declare v3 = <2,-2,1>; #declare x0 = <2.5,-2.5,3>; #declare x1 = <3,-3*a1,1>; #declare x2 = <3.5,-3.5,1>; #declare x3 = <4*a1,-4,0>; #declare r0 = 1; #declare r1 = 0.1; #declare r2 = 0.2; #declare r3 = 0.1; #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) } #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 quatrotentaculos = union { tentaculo (p0,p1,p2,r0,q1,q2,q3,r1) tentaculo (s0,s1,s2,r0,t1,t2,t3,r1) union { tentaculo (v0,v1,v2,r0,x1,x2,x3,r1) rotate<0,0,180> } tentaculo (v0,v1,v2,r0,x1,x2,x3,r1) } union { box { <-20,-20,-1>, <+20,+20,0> texture{ tx_checkers } } union { union { object {quatrotentaculos } object {quatrotentaculos rotate<0,0,235>} scale <1,1,-1> translate<0,0,4> } union { cylinder {<0,0,0>,<0,0,2>,1} sphere { <0,0,2> 1.2} cone {<0,0,2.5>,1.4,<0,0,4>,0} translate <0,0,4> } texture {tx_red} } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 14; #declare dir_camera = < 5, 20, 23 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)