// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "textures.inc" background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_chao = texture{ pigment{ color rgb < 0.00, 0.70, 0.00 > } scale 2.0 } #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_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_prateado = texture{ pigment{ color rgb < 0.30, 0.30, 0.30 > } finish{ diffuse 0.2 reflection 0.6 brilliance 0.1 } } #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 = 2.000; #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #declare dispositivo1 = union { difference { box { <0.1,-0.5,0>, <-0.1,0.5,0.8> texture { tx_prateado } } box { <0.15,-0.40,0.1>, <-0.15,0.40,0.7> texture { tx_prateado } } box { <0.15,-0.15,-0.1>, <-0.15,0.15,0.7> texture { tx_prateado } } } } #declare dispositivo = union { difference { sphere { <0,0,0> 0.2 texture { Gold_Metal } } box { <0,-0.3,-0.3>, <-0.3,+0.3,+0.3> } rotate <0,-90,0> } } #macro bit(valor, defeito) union { #if (defeito = 0) object{dispositivo} object{dispositivo1 rotate <0,50-(100*valor),0>} #else object{dispositivo} #end } #end #macro base(m,n) union { difference { box { <0.85*m,-0.85*n,-0.2>, <-0.85*m,0.85*n,+0.2> texture { tx_plastico } translate <0,0,0.12> } box { <0.80*m,-0.80*n,-0.2>, <-0.80*m,0.80*n,+0.4> texture { tx_plastico } translate <0,0,0.12> } } } #end #macro fileira(n, valor, prob) #local i = 0; #local pos = n*0.8 - 0.8; #local r = int(valor); #local f = valor - r; #local k = 0; union { #while(i < n) #local def = (rand(roleta) < prob); #local vb = mod(r,2); #if (vb = 0) object{bit(f,def) translate <0,pos,0>} #local f = 0; #else object{bit(1-f,def) translate <0,pos,0>} #end #local r = int(r/2); #local pos = pos - 1.60; #local i = i + 1; #end } #end #declare valores = array[10]; #declare valores[0] = (1-clock)*0 + clock*10; #declare valores[1] = (1-clock)*10 + clock*0; #declare valores[2] = (1-clock)*5 + clock*11; #declare valores[3] = (1-clock)*7 + clock*18; #declare roleta = seed(417); #macro abaco(m,n,valores,prob) #local i = 0; #local pos = -(m*0.8) + 0.8; union{ object{base(m,n)} #while(i < m) object{fileira(n,valores[i],prob) translate } #local pos = pos + 1.60; #local i = i + 1; #end } #end #include "eixos.inc" union{ object{ chao translate < 0,0,-5 > texture{ tx_xadrez } } object{abaco(4,6,valores,0.10) rotate <0,90,0> translate <0,0,1>} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = (1-clock)*9 + clock*7; #declare dir_camera = < (1-clock)*50 + clock*20, (1-clock)*-10 + clock*10, (1-clock)*0 + clock*8 >; #declare dist_camera = 20; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)