// MELT / Dancing Around A Fire '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 {<100, 150, -150> color <1, 1, 1>} camera { location <0, 15, -100> angle 80 look_at <4, 25, 0> } #declare R1 = seed(20); #declare StrengthVal = 0.1; #declare Media = media { emission 0.04 intervals 150 samples 1, 1000 confidence 0.9999 variance 1/100 density { spherical turbulence 1 color_map { [0 color rgbt <0, 0, 0, 1>] [0.4 color rgbt <0.5, 0, 0, 0.2>] [1 color rgb <0.5, 1, 0.5>] } scale <50, 80, 50> translate y*10 } } #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.0000001*pow(Np-Nmax/2, 2); sphere { Dsphe StrengthVal rotate y*-0.005*Np rotate x*Rot } #declare Ca[mod(Pa, Amax)] = Np; #declare Np = Np+1; #end #end union { blob { threshold 0.15 Dlaring(2000, 120, 0, 3) pigment {color rgbt <0.8, 0.9, 1, 0.9>} finish { reflection 1 phong 2 brilliance 1 ambient 0.4 } scale 1.06 no_shadow } sphere {<0, 0, 0> 1000 pigment {color rgbf <1, 1, 1, 1>} finish {ambient 0 diffuse 0} interior {media {Media}} hollow } rotate z*-12 } background { color rgb <0, 0.1, 0> }