// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare roleta = seed(477); #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_money = texture{ pigment{ color rgb < 0, 1, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_tronco = texture{ pigment{ color rgb <1, 0.7, 0.7 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_fosca = texture{ pigment{ color rgb < 0.7, 0.1, 0.2 > } finish{ diffuse 0.1 reflection 0.7*< 0.7, 0.1, 0.2 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 1, 1, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.01 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 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare raio = 5.000; #declare prob = 0.1; #declare esferas = sphere{ <0,0,0,>,0.2 } #declare buraco = cylinder{ < 0,0,0 >, < 0,0,1 >, 0.15 } #macro criaEsferas() union{ difference{ object{esferas} object{buraco} } translate<0,0,0.21> } #end #macro criaEstrutura() union{ object{base} object{suporte} } #end #declare base= box{ <0,0,0>,<1,1,0.1> pigment { rgb <1, 1, 1> } } #declare suporte = cylinder{ < 0.5,0.5,-0.01 >, < 0.5,0.5,1.41 >, 0.1 texture{ tx_plastico } } #declare teto = box{ <0,0,0>,<1,1,0.1> translate<0,0,1.2> texture{ tx_vidro } } #macro bit(bits,defeito) union{ #if(defeito = 1) union{ } #else union{ object{criaEsferas() translate<0.5,0.5,bits> pigment { rgb <(1-clock)*1+clock*0, (1-clock)*0+clock*1, 0> }} } #end } #end #macro fileira(numero,valor,prob) union{ #local r = int(valor); #local f = valor-r; #local i=0; #while(i < numero) #local def = rand(roleta); #if(def < prob) #local defeito = 1; #else #local defeito = 0; #end #local vv = mod(r,2); #if(vv = 0) object{criaEstrutura() translate<0,-i,0>} object{bit(f,defeito) translate<0,-i,0>} #local f = 0; #else object{criaEstrutura() translate<0,-i,0>} object{bit(1-f,defeito) translate<0,-i,0>} #end #local r = int(r/2); #local i= i+1; #end } #end #macro abaco(linhas,colunas,valores,prob) union{ #local i=0; #while(i < linhas) object{fileira(colunas,valores[i],prob) translate<-i,0,0>} #local i= i+1; #end } #end #declare linhas = 4; #declare valores = array[linhas]; #declare valores[0] = (1-clock)*6+clock*1; #declare valores[1] = (1-clock)*10+clock*1; #declare valores[2] = (1-clock)*14+clock*1; #declare valores[3] = (1-clock)*16+clock*1; #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #include "eixos.inc" object{ eixos(3.00) } object{ abaco(linhas,4,valores,prob) translate<2,2,0>} #include "camlight.inc" #declare centro_cena = < (1-clock)*-5+clock*5,1, 0 >; #declare raio_cena = (1-clock)*15+clock*5; #declare dir_camera = < 18,-4,7 >; #declare dist_camera = 9; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)