// STRATA / Fruit '01.09 // By Tsutomu HIGO E-mail: nj2t-hg@asahi-net.or.jp #version 3.1; global_settings { max_trace_level 3 assumed_gamma 2.2 } camera { location <200, 300, -200> angle 46 look_at <0, -64, 0> } light_source {<0, 10, 0> color rgb <1,1,1>} light_source {<100, -100, -1000> color rgb <1,1,1>} #declare R1 = seed(39); #declare Ctm = 70; #declare Turn = array[Ctm][2] #declare Cnm = 18; #declare Bubble = array[2] #declare R = 0; #declare Ct =0; #while (Ct < Ctm) #if(Ct=0) #declare Turn[Ct][0] = 0; #declare Turn[Ct][1] =0; #else #declare Turn[Ct][0] = Turn[Ct-1][0]-15*rand(R1)+45*rand(R1)-10; #declare Turn[Ct][1] = Turn[Ct-1][1]+1.5*rand(R1)-1.2*rand(R1); #end #declare Ct = Ct+1; #end #declare Cn = 0; #while (Cn < Cnm) #declare R0 = R+6*rand(R1); #declare N = 0; #while (N < 2) #declare R = R0+0.5*N; #declare Xp = 0; #declare L = 7; #declare Yp = 0; #declare Zp = 0; #declare Bubble[N] = union { #declare Ct =0; #while (Ct < Ctm) #declare Yr = Turn[Ct][0]; sphere { R } #declare Xp = Xp+L*sin(mod(Yr+360,360)*pi/180); #declare Yp = Yp+Turn[Ct][1]; #declare Zp = Zp+L*cos(mod(Yr+360,360)*pi/180); #declare Ct = Ct+1; #end } #declare N = N+1; #end intersection { object { Bubble[1] } object { Bubble[0] inverse } plane { y, 0 } pigment {color rgb <0.5+0.5*rand(R1), 0.3*rand(R1), 0.1*rand(R1)>} finish { ambient 0.2 phong 1 reflection 1 diffuse 0.7 } translate <-76,0,20> rotate y*150 no_shadow } #declare Cn = Cn+1; #end