// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 1.0, 1.0, 1.0 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.4, 0.4, 0.8 > } finish{ diffuse 0.5 reflection 0.25 ambient 0.1 specular 0.5 roughness 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.1 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.42, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #macro moldura(n,m) union { difference { object { box { <-0.6, 2, 2>, <-0.1, -n*2, -m*2> texture {tx_plastico} } } difference { object { box { <-0.3, 1, 1>, < 0.0, -n*2 + 1, -m*2 + 1> texture {tx_plastico} } } object { box { <-0.4, 0.5, 0.5>, < 0.5, -n*2 + 1.5, -m*2 + 1.5> texture {tx_plastico} } } } } } #end #declare c1 = cylinder { <0, -0.4, 0>, <0, 0.4, 0>, 0.2 } #declare c2 = cylinder{ < 0, 0, -0.4 >, < 0, 0, 0.4 >, 0.2 texture { pigment {color rgb <0.64, 0.16, 0.16> } } } #declare bit0 = union { object { c1 } object { c2 translate <0, 0, -0.4> } } #macro bit(vlr, def) #if(def = 1) object { bit0 rotate < 0, 90, 0> } #else object { bit0 rotate < 0, -vlr*180, 0> } #end #end #macro fileira(n, num, prob) #local i = 0; #local def = 0; #local r = int(num); #local f = num - r; union { #while(i < n) #local def = (rand(roleta) < prob); #local vb = mod(r,2); #if(vb=0) object { bit(f,def) translate <0, -i*2, 0> } #local f = 0; #else object { bit(1-f,def) translate <0, -i*2, 0> } #end #local r = int(r/2); #local i = i + 1; #end } #end #declare nums = array[10]; #declare nums[0] = (1-clock)*7 + clock*9; #declare nums[1] = (1 - clock)*13 + clock*15; #declare nums[2] = (1 -clock)*5 + clock*8; #declare nums[3] = (1 - clock)*3 + clock*4; #declare nums[4] = 2; #declare nums[5] = 0; #declare nums[6] = 0; #declare nums[7] = 0; #declare nums[8] = (1 - clock)*0 + clock*1; #declare nums[9] = (1 - clock)*256 + clock*257; #declare roleta = seed(447); #macro abaco(m, n, nums, prob) #local i = 0; union { object { moldura(n,m) } #while(i < m) object { fileira(n, nums[i], prob) translate<0, 0, -i*2> } #local i = i + 1; #end } #end #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } union { object{ chao translate < 0,0,-22 > texture{ tx_xadrez } } object { abaco(10, 10, nums, 0.15) translate <-2, -7, 0> } object { abaco(6, 6, nums, 0.1) translate <3, 7, 0>} } #include "camlight.inc" #declare centro_cena = < (1-clock)*3.00 + clock*1, -3.50, -7.00 >; #declare raio_cena = 20.0; #declare dir_camera = < (1- clock)*(6.00) + clock*(3.00), (1- clock)*(-3.00) + clock*2.50 ,(1 - clock)*(-2.00)+ clock*1 >; #declare dist_camera = (1-clock)*20.0 + clock*10; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)