// CE1 / Tiled Floor colored by Automaton '08.03 // by Tsutomu HIGO URL:http://www.asahi-net.or.jp/~nj2t-hg/ #version 3.6; global_settings { assumed_gamma 2.2 max_trace_level 5 } light_source {<20, 20, 60> color <1, 0.9, 0.8>} camera { location <-5, 15, -10> angle 40 look_at <-2, 0, 10> } #declare R1 = seed(5); #declare Nmax = 16; #declare Cp = array[2*Nmax][2]; #declare Nx = 0; #while (Nx < 2*Nmax) #declare Cp[Nx][0] = int(6.9999999*rand(R1)); #declare Nx = Nx+1; #end #macro Tile(Lx,Lz,Col) superellipsoid {<0.3, 0.3> scale <0.45, 0.2, 0.45> translate pigment {color rgb <1-0.4*Col/6, 0.5+0.3*Col/6, 0.5+0.5*Col/6>} finish { reflection 0.7 phong 1 brilliance 1 ambient 0.6 } } #end union { #declare Ny = 1; #while (Ny < 3*Nmax) #declare Nx = 0; #while (Nx < 2*Nmax) #declare Cp[Nx][1] = mod(Cp[mod(Nx-1+2*Nmax, 2*Nmax)][0]+Cp[Nx][0]+Cp[mod(Nx+1, 2*Nmax)][0], 8); #switch (Cp[Nx][1]) #case (0) #declare Cp[Nx][1] = 0; #break #case (1) #declare Cp[Nx][1] = 0; #break #case (2) #declare Cp[Nx][1] = 5; #break #case (3) #declare Cp[Nx][1] = 3; #break #case (4) #declare Cp[Nx][1] = 6; #break #case (5) #declare Cp[Nx][1] = 2; #break #case (6) #declare Cp[Nx][1] = 1; #break #case (7) #declare Cp[Nx][1] = 4; #break #end Tile(Nx-Nmax, Ny, Cp[Nx][1]) #declare Nx = Nx+1; #end #declare Nx = 0; #while (Nx < 2*Nmax) #declare Cp[Nx][0] = Cp[Nx][1]; #declare Nx = Nx+1; #end #declare Ny = Ny+1; #end no_shadow } plane { y, 0.1 pigment {color rgb <1, 1, 1>} finish { reflection 0 phong 1 brilliance 1 ambient 0.6 } }