// MELT / A Twisted Cup '03.03 // By Tsutomu HIGO E-mail: nj2t-hg@asahi-net.or.jp #version 3.1; global_settings { assumed_gamma 2.2 max_trace_level 5 } light_source {<3000, 1000, -1500> color <1, 1, 1>} camera { location <0, 0, -150> angle 75 look_at <80, 70, 0> } #declare R1 = seed(7); #declare StrengthVal = 0.2; #declare Media = media { emission 0.03 intervals 100 samples 1, 50 confidence 0.9999 variance 1/100 density { spherical turbulence 0.6 color_map { [0.0 color rgbt <0, 0, 0>] [0.3 color rgbt <0, 0.2, 0.3>] [1 color rgb <1, 1, 1>] } scale <30, 60, 30> translate y*135 } } #macro Dlaring (Nmax, Dia, Rot, Dsphe) #declare Amax = int(pi*Dia/2*3); #declare Ca = array[Amax] #declare Na = 0; #while (Na < Amax) #declare Ca[Na] = 0; #declare Na = Na+1; #end #declare Cp = array[Nmax][3] #declare Ap = 2*pi*rand(R1); #declare Cp[0][0] = Dia/2*cos(Ap); #declare Cp[0][1] = Dia/2*sin(Ap); #declare Cp[0][2] = 0; #declare Np = 1; #while (Np < Nmax) #declare Ap = 2*pi*rand(R1); #declare Pa = int(Ap*Dia/4*3); #declare Ho = max( max( max(Cp[Ca[mod(Pa-4+Amax, Amax)]][2], Cp[Ca[mod(Pa-3+Amax, Amax)]][2]), max(Cp[Ca[mod(Pa-2+Amax, Amax)]][2], Cp[Ca[mod(Pa-1+Amax, Amax)]][2]) ), max( max(max(Cp[Ca[mod(Pa, Amax)]][2], Cp[Ca[mod(Pa+1, Amax)]][2]),Cp[Ca[mod(Pa+2, Amax)]][2]), max(Cp[Ca[mod(Pa+3, Amax)]][2], Cp[Ca[mod(Pa+4, Amax)]][2]) ) )+2.1; #declare Ntmax = Ho*10; #declare Nt = Ntmax; #while (Nt > -1) #declare Cp[Np][0] = Dia/2*cos(Ap); #declare Cp[Np][1] = Dia/2*sin(Ap); #declare Cp[Np][2] = Ho*Nt/Ntmax; #declare Ns = -4; #while (Ns < 5) #declare Nns = Ca[mod(Pa+Ns+Amax, Amax)]; #if (pow(Cp[Np][0]-Cp[Nns][0], 2)+pow(Cp[Np][1]-Cp[Nns][1], 2)+pow(Cp[Np][2]-Cp[Nns][2], 2) < 4) #declare Nt = 0; #end #declare Ns = Ns+1; #end #declare Nt = Nt-1; #end #declare Rd = 1-0.7*cos(Np/Nmax*2*pi-0.75*pi); sphere { Dsphe StrengthVal rotate y*Rot*Np/Nmax} #declare Ca[mod(Pa, Amax)] = Np; #declare Np = Np+1; #end #end union { blob { threshold 0.25 Dlaring (3000, 50, 270, 3) pigment {color rgbt <0.8, 0.9, 1, 0.9>} finish { reflection 1 phong 2 brilliance 1 ambient 0.4 } scale y*1.5 no_shadow } sphere { 0, 1000 pigment {color rgbf <1, 1, 1, 1>} finish {ambient 0 diffuse 0} interior {media {Media}} hollow } rotate z*-70 rotate y*60 } background {color rgb <0, 0.1, 0.2>}