// ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_vidro = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.40 } 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.90, 0.12, 0.20 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare tx_outra = texture{ pigment{ checker color rgb < 0.20, 0.82, 0.40 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } // ====================================================================== // Partes da cena: #declare pinicial = sphere{ < 0,0,0 >, 0.3 } #macro inter(t0,v0,t1,v1,f) #local aa = (f-t0)/(t1-t0); #local bb = 1-aa; (bb*v0 + aa*v1) #end #macro inter4(t0, v0, v1, v2, v3, t1, tt) #local va = inter(t0, v0, t1, v1, tt); #local vb = inter(t0, v1, t1, v2, tt); #local vc = inter(t0, v2, t1, v3, tt); #local vd = inter(t0, va, t1, vb, tt); #local ve = inter(t0, vb, t1, vc, tt); #local vf = inter(t0, vd, t1, ve, tt); vf #end #macro desloca(xa, ya) object { pinicial translate } #end #macro grafico(x0, y0, y1, y2, y3, x3, n) #local soma = (x3-x0)/n; #local i = 0; union { #while(i < n) #local xs = i*soma+x0; #local ys = inter4(x0, y0, y1, y2, y3, x3, xs); desloca(xs, ys) #local i=i+1; #end } #end #include "eixos.inc" // CENA union{ object { eixos(20.00) } #local y0a = 4; #local y0b = 5; #local y0c = 1; #local y1b = 4; #local y1c = 7; #local y2b = 3; #local y2c = 1; #local y3b = 4; #local y3c = 5; #local y3d = 6; #local y0d = (y0c + y1b)/2; #local y1d = (y1c + y2b)/2; #local y2d = (y2c + y3b)/2; #local y1a = y0d; #local y2a = y1d; #local y3a = y2d; object {grafico(1,y0a,y0b,y0c,y0d,5,10) texture{ tx_xadrez} } object {grafico(5,y1a,y1b,y1c,y1d,8,10) texture{ tx_outra} } object {grafico(8,y2a,y2b,y2c,y2d,14,10) texture{ tx_xadrez} } object {grafico(14,y3a,y3b,y3c,y3d,20,10) texture{ tx_outra} } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 25; #declare dir_camera = < 0.00, 0.01, 4.00 >; #declare dist_camera = 50.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , y, intens_luz)