// EAT / A Window Cut Through '03.01 // by Tsutomu HIGO E-mail: nj2t-hg@asahi-net.or.jp #version 3.5; global_settings { max_trace_level 4 assumed_gamma 2.2 } camera { location <0, 8, -3> angle 90 look_at <0, -4, 0> } #declare R1 = seed(7); #declare Media = media { emission 0.05 intervals 20 samples 1, 10 confidence 0.9999 variance 1/100 density { spherical turbulence 2 color_map { [0.0 color rgbt <0, 0, 0, 1>] [0.3 color rgbt <1, 0.5, 0, 1>] [1.0 color rgb <2, 2, 2>] } scale 4 } } #declare R1 = seed(7); #macro Meshsquare (Pmaxx, Pmaxy, Pmaxz, Rrand, Rsize) #declare Cp = array[Pmaxx][Pmaxy][Pmaxz][3] #declare Xp = 0; #while (Xp < Pmaxx) #declare Yp = 0; #while (Yp < Pmaxy) #declare Zp = 0; #while (Zp < Pmaxz) #declare Cp[Xp][Yp][Zp][0] = Xp/Pmaxx-0.5; #declare Cp[Xp][Yp][Zp][1] = -Yp/Pmaxx; #declare Cp[Xp][Yp][Zp][2] = Zp/Pmaxx-0.6*Pmaxz/Pmaxx; #declare Zp = Zp+1; #end #declare Yp = Yp+1; #end #declare Xp = Xp+1; #end union { #declare Xp = 0; #while (Xp < Pmaxx) #declare Yp = 0; #while (Yp < Pmaxy) #declare Zp = 0; #while (Zp < Pmaxz) #if (pow(Cp[Xp][Yp][Zp][0], 2)+pow(Cp[Xp][Yp][Zp][1], 2)+pow(Cp[Xp][Yp][Zp][2], 2) > 0.12-0.05*rand(R1)) sphere { Rsize/Pmaxx*2} #else sphere { Rsize/Pmaxx*2} #end #declare Zp = Zp+1; #end #declare Yp = Yp+1; #end #declare Xp = Xp+1; #end pigment {color rgb <1.0, 1.0, 1.0>} finish { reflection 0.7 phong 1 ambient 0.2 } no_shadow translate <0.5/Pmaxx, 0, 0.5/Pmaxx> scale 10 } #end union { object {Meshsquare(50, 10, 50, 0.8, 0.25) scale 2} sphere {0, 20 pigment {color rgbf <1, 1, 1, 1>} finish {ambient 1 diffuse 0} interior {media {Media}} hollow scale 4 rotate x*180 translate <-8, -3, 3> } }