// Last edited on 2013-12-11 11:25:22 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_polvo = texture{ pigment{ color rgb < 0.50, 0.30, 0.60 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #macro criaBixo() union{ difference{ union{ object{ cylinder{<0, 0, 0>, <0, 0, 2>, 0.8 texture {tx_polvo}} } } union{ object{ sphere{<0.8, 0.3, 1>, 0.145 } } object{ sphere{<0.3, 0.8, 1>, 0.145 } } object{ cylinder{<0.7, 0.1, 0.5>, <0.1, 0.7, 0.5>, 0.3 } } } } object{tentAnim(p1, p0, p3, p1, clock) translate<0.5, 0.5, 0>} object{tentAnim(p1, p0, p3, p1, clock) translate<0.5, 0.5, 0> rotate <0, 0, 90>} object{tentAnim(p1, p0, p3, p1, clock) translate<0.5, 0.5, 0> rotate <0, 0, 180>} object{tentAnim(p1, p0, p3, p1, clock) translate<0.5, 0.5, 0> rotate <0, 0, 270>} object{tentAnim(p4, p3, p5, p4, clock) translate<0.5, 0.5, 0> rotate <0, 0, 45>} object{tentAnim(p4, p3, p5, p4, clock) translate<0.5, 0.5, 0> rotate <0, 0, 135>} object{tentAnim(p4, p3, p5, p4, clock) translate<0.5, 0.5, 0> rotate <0, 0, 225>} object{tentAnim(p4, p3, p5, p4, clock) translate<0.5, 0.5, 0> rotate <0, 0, 315>} } #end #declare chao = box{ <-20, -20, -1>, <+20, +20, 0> } #macro interp2(p0, p1, tt) ((1-tt)*p0 + tt*p1) #end #macro interp4(p0, p1, p2, p3, tt) #local p01 = interp2(p0, p1, tt); #local p12 = interp2(p1, p2, tt); #local p23 = interp2(p2, p3, tt); #local p012 = interp2(p01, p2, tt); #local p123 = interp2(p12, p3, tt); #local p0123 = interp2(p012, p123, tt); p0123 #end #macro curvavar(pp0, pp1, pp2, pp3, raio1, raio2, tt, ttr) union{ #declare i = 0; #declare rr = raio1; #local pl = pp0; #while(i<=1) #local pl = interp4(pp0, pp1, pp2, pp3, i); object{ sphere { pl, interp2(raio1, raio2, rr) texture { tx_polvo } } } #declare i = i + tt; #declare rr = rr + ttr; #end } #end #macro curva2(pp0, pp1, pp2, qq0, qq1, qq2) union{ object{ curvavar(pp0, pp1, pp2, (pp2+qq0)/2, 0.5, 0.1, 0.1, 0.07) } object{ curvavar((pp2+qq0)/2, qq0, qq1, qq2, 0.1, 0.05, 0.1, 0.07) } } #end #macro tentAnim(pos0, pos1, pos2, pos3, tempo) #local n = 18; #local post = array[n]; #local i = 0; #while (i; #local p1 = ; #local p2 = ; #local q0 = ; #local q1 = ; #local q2 = ; object{curva2(p0, p1, p2, q0, q1, q2)} #end #declare p0 = array[18]{0, 0, 0, 1, 1, 1, 1.5, 1.5, 0.5, 2, 2, 0, 2.5, 2.5, -0.5, 3, 3, 0.25} #declare p1 = array[18]{0, 0, 0, 0.6, 0.6, 0.6, 1.5, 1.5, 0.5, 2, 2, 0, 3, 3, -0.8, 3, 3, 0.25} #declare p2 = array[18]{0, 0, 0, 0.6, 0.6, -0.2, 1.5, 1.5, 0.5, 2, 2, 0, 3, 3, -0.2, 3, 3, 0.25} #declare p3 = array[18]{0, 0, 0, 1, 1, -1, 1.5, 1.5, -0.5, 2, 2, 0, 2.5, 2.5, 0.5, 3, 3, -0.25} #declare p4 = array[18]{0, 0, 0, -0.6, -0.6, -0.2, 1.5, 1.5, -0.5, 2, 2, 0, 3, 3, 0.2, 3, 3, -0.25} #declare p5 = array[18]{0, 0, 0, 0.6, 0.6, 0.2, 1.5, 1.5, -0.5, 2, 2, 0, 2.1, 2.1, 0.5, 3, 3, -0.25} #include "eixos.inc" union{ object{ eixos(3.00) } object{ chao translate <0, 0, -5 > } object{ criaBixo() } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 6.0; #declare dir_camera = < 14.00, 7.00, 4.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)