// GATHER / Crevice '03.08 // By Tsutomu HIGO URL: http://www.asahi-net.or.jp/~nj2t-hg/ #version 3.5; global_settings { assumed_gamma 2.2 max_trace_level 4 } light_source {<0, 0, -10> color <1, 1, 1>} camera { location <-0.2, -0.3, -4> angle 8 look_at <-0.03, 0.015, 0> } #declare R1 = seed(7); #declare StrengthVal = 0.3; #macro Meshsquare (Pmaxx, Pmaxy, Rrand, Rsize) //initialize the coordinates #declare Cp = array[Pmaxx][Pmaxy][3] #declare Xp = 0; #while (Xp < Pmaxx) #declare Yp = 0; #while (Yp < Pmaxy) #declare Cp[Xp][Yp][0] = (Xp-Rrand/2+Rrand*rand(R1))/Pmaxx-0.5; #declare Cp[Xp][Yp][1] = (Yp-Rrand/2+Rrand*rand(R1))/Pmaxx-0.5*Pmaxy/Pmaxx; #declare Cp[Xp][Yp][2] = -100*log(abs(Cp[Xp][Yp][0]))/(2000*pow(Cp[Xp][Yp][0],2)+12000*pow(Cp[Xp][Yp][1],2)+0.5); #declare Yp = Yp+1; #end #declare Xp = Xp+1; #end union { blob { threshold 0.3 #declare Xp = 0; #while (Xp < Pmaxx) #declare Yp = 0; #while (Yp < Pmaxy) sphere { Rsize/Pmaxx StrengthVal} #if (Yp > 0) cylinder { 0.5*Rsize/Pmaxx StrengthVal} #end #if (Xp > 0) cylinder { 0.5*Rsize/Pmaxx StrengthVal} #end #declare Yp = Yp+1; #end #declare Xp = Xp+1; #end pigment {color rgb <0.2, 0.6, 1>} finish { ambient 0.3 reflection 1 phong 2 brilliance 1 } no_shadow translate <0.5/Pmaxx, 0.5/Pmaxx, 0> } } #end union {Meshsquare(130, 100, 1, 1.2) rotate z*30} sphere { <0, 0, 0.5> 0.06 pigment {color rgb <1, 1, 0>} finish { ambient 0.1 reflection 1 phong 2 brilliance 1 } no_shadow }