// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2010-03-04 15:44:01 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_preto = texture{ pigment{ color rgb < 0, 0, 0 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1,1,1 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 } } #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_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } scale 2.0 } #include "eixos.inc" // Aqui está a cena, finalmente: #macro interpola(f0,v0,f1,v1,f) #local s1 = (f-f0)/(f1-f0); #local s2 = 1-s1; (s2*v0+s1*v1) #end #macro interpola4(t0, v0, v1, v2, v3, t3, tt) #local v01 = interpola(t0, v0, t3, v1, tt); #local v12 = interpola(t0, v1, t3, v2, tt); #local v23 = interpola(t0, v2, t3, v3, tt); #local v012 = interpola(t0, v01, t3, v12, tt); #local v123 = interpola(t0, v12, t3, v23, tt); #local v0123 = interpola(t0, v012, t3, v123, tt); (v0123) #end #macro grafico(x0, y0, y1, y2, y3, x3, n) union { #local pond = 0; #while(pond <= n) #local posx = x3*(pond/n)+x0*(1-pond/n); #local posy = interpola4(x0, y0, y1, y2, y3, x3, posx); #local pond = 1 + pond; object{ sphere{ <0,posx,posy>, 0.15 texture{ tx_fosca } } } #end } #end #macro multigrafico(x0, y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, x1, x2, x3, x4, n) union { grafico(x0, y0, y1, y2,(y2+y3)/2, x1, n) grafico(x1, (y2+y3)/2, y3, y4, (y4+y5)/2, x2, n) grafico(x2, (y4+y5)/2, y5, y6, (y6+y7)/2, x3, n) grafico(x3, (y6+y7)/2, y7, y8, (y8+y9)/2, x4, n) } #end object{ multigrafico(2,5,3,7,1,6,10,3,9,8,6,3,4,5,6,5) } #include "camlight.inc" #declare centro_cena = < 0.00, 4.00, 0.00 >; #declare raio_cena = 20; #declare dir_camera = <0.5, 0, 2 >; #declare dist_camera = 100.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)