// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_red = texture{ pigment{ color rgb < 1, 0, 0 > } finish{ diffuse 0.8 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_green = texture{ pigment{ color rgb < 0, 1, 0 > } finish{ diffuse 0.8 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_blue = texture{ pigment{ color rgb < 0, 0, 1 > } finish{ diffuse 0.8 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_lightbrown = texture{ pigment{ color rgb < 1.11, 0.59, 0.59 > } finish{ diffuse 0.5 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_brown = texture{ pigment{ color rgb < 1.11, 0.59, 0.59 > } finish{ diffuse 0.4 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_lightorange = texture{ pigment{ color rgb < 1, 0.5, 0 > } finish{ diffuse 0.8 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_orange = texture{ pigment{ color rgb < 1, 0.5, 0 > } finish{ diffuse 0.5 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_black = texture{ pigment{ color rgb < 0.2, 0.2, 0.2 > } finish{ diffuse 0.8 ambient 0.2 specular 0.5 roughness 0.005 } } #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_espelho = texture{ pigment{ color rgb < 1.00, 0.50, 0.50 > } finish{ diffuse 0.4 reflection 0.5*< 1.00, 1.00, 1.00 > ambient 0.1 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 1.0, 1.0, 1.0 >, color rgb < 0.0, 0.0, 0.0 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.5 } #declare raio = 0.3; #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #macro bolinha(rr) sphere { <0,0,0> rr texture{tx_lightbrown} } #end #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); Interpola2(P012, P123, tt) #end #macro curva(P0, P1, P2, P3, R0, R1, R2, R3) #local i = 0; #local param = 0.01; #while (i < 100) object{bolinha(Interpola4(R0, R1, R2, R3, param)) translate Interpola4(P0,P1, P2, P3, param)} #local i = i + 1; #local param = param + 0.01; #end #end #macro tentaculo_animado(param0, param1, param2, param3, param4, param5, param6, param7) #local R0 = 0.22; #local R1 = 0.20; #local R2 = 0.18; #local R3 = 0.16; #local sc = 0.9; #if (clock < 0.5) #local PC = <-sc*clock, 0, sc*clock>; #else #local PC = <-(sc*0.5) + sc*(clock - 0.5), 0, sc*0.5 - sc*(clock - 0.5)>; #end #local P0 = param0 + PC; #local P1 = param1 + PC; #local P2 = param2 + PC; #local P3 = param3 + PC; #local Q0 = param4 + PC; #local Q1 = param5 + PC; #local Q2 = param6 + PC; #local Q3 = param7 + PC; union{ curva(P0, P1, P2, P3, R0, (R0+R1/2), (R0+R1/2), R1) curva(Q0, Q1, Q2, Q3, R1, (R2+R3)/2, (R2+R3)/2, R3) } #end #macro polvo_animado() #local P0 = <0, 0, 0>; #local P1 = <1.5, 0, 0.5>; #local P2 = <2, 0, 0.5>; #local Q1 = <2.5, 0, -0.5>; #local Q2 = <3, 0, -0.5>; #local Q3 = <3.5, 0, 0>; #local P3 = (P2 + Q1)/2; #local Q0 = P3; union{ object{sphere{<0,0,0>, 1 texture{tx_brown}}} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) translate <1.05, 0, 0>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) scale -1 translate<-1.05, 0, 0>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) scale -1 translate<-1.05, 0, 0> rotate<0,0,45>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) scale -1 translate<-1.05, 0, 0> rotate<0,0,-45>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) scale -1 translate<-1.05, 0, 0> rotate<0,0,90>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) translate <1.05, 0, 0> rotate <0,0,45>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) translate <1.05, 0, 0> rotate <0,0,-45>} object{tentaculo_animado(P0, P1, P2, P3, Q0, Q1, Q2, Q3) translate <1.05, 0, 0> rotate <0,0,90>} } #end #include "eixos.inc" union{ object{ eixos(20.00)} object{ chao translate < 0,0,-5 > texture{ tx_xadrez } } object{ polvo_animado() } } #include "camlight.inc" #declare centro_cena = < -0.2, 0.200, 1 >; #declare raio_cena = 6.0; #declare dir_camera = < 2, 3, 2>; #declare dist_camera = 16; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)