//Pedro Feniman 083991 // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_fosca = texture{ pigment{ color rgb < 0.70, 0.80, 0.40 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA #macro interpola(f0,v0,f1,v1,f) #local ss = (f - f0) / (f1 - f0); #local rr = 1 - ss; (rr * v0 + ss * v1) #end #macro interpola4(t0,y0,y1,y2,y3, t3, tt) #local y01 = interpola(t0, y0, t3, y1, tt); #local y12 = interpola(t0, y1, t3, y2, tt); #local y23 = interpola(t0, y2, t3, y3, tt); #local y012 = interpola(t0, y01, t3, y12, tt); #local y123 = interpola(t0, y12, t3, y23, tt); #local y01234 = interpola(t0, y012, t3, y123, tt); interpola(t0, y012, t3, y01234, tt); #end #macro desenha(a0, b0, b1, b2, b3, a3, n) #local delta = (a3-a0)/n; #local i = 0; #local xx = a0; #while(i < n) #local yy = interpola4(a0, b0, b1, b2, b3, a3, xx); object { sphere{<0, xx, yy>, 0.2 texture{tx_fosca} } } #local xx = xx + delta; #local i = i + 1; #end #end #macro desenha4(x0, g0, g1, g2, h1, h2, i1, i2, j1, j2, j3, x3, n) #local g3 = (g2+h1)/2; #local h0 = g3; #local h3 = (h2+i1)/2; #local i0 = h3; #local i3 = (i2+j1)/2; #local j0 = i3; #local dt = (x3-x0)/4; desenha(x0, g0, g1, g2, g3, x0+dt, n) desenha(x0+dt, h0, h1, h2, h3, x0+2*dt, n) desenha(x0+2*dt, i0, i1, i2, i3, x0+3*dt, n) desenha(x0+3*dt, j0, j1, j2, j3, x0+4*dt, n) #end union{ desenha4(0, -2, 4, -4, 6, 0, -7, 7, 3, 1, 3, 8, 50) } #include "camlight.inc" #declare centro_cena = < 0, 4, 01 >; #declare raio_cena = 9.0; #declare dir_camera = < 50.00, 0.00, 1.00 >; #declare dist_camera = 30.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)