// Simple 3D fractal, 4 iterations deep // (C) 2002 by Joerg "Yadgar" Bleimann, e-mail: yadgar@tiscalinet.de // This version: March 31, 2002 // Permission is granted to non-commercial use only. // Under no circumstances these comment lines may be removed! #declare Standard= finish { ambient 0.15 diffuse 0.85 brilliance 0.2 } #declare Metal= finish { ambient 0.05 diffuse 0.95 brilliance 10 phong 1 phong_size 0.5 metallic reflection 0.5 } #declare Silver= texture { pigment { color rgb 0.7 } finish { Metal } } #declare Gold= texture { pigment { color rgb <1, 0.85, 0> } finish { Metal } } #declare Copper= texture { pigment { color rgb <0.85, 0.3, 0> } finish { Metal } } #declare Ball= sphere { <0, 0, 0>, 0.5 } light_source { <-300000, 850000, -540000> color rgb 1 } camera { location <0, 0, -10> look_at 0 angle 25 } object { Ball texture { Silver } } #declare a=0; #declare d1=1; #while (a<24) #switch(a) #range (0, 7) #declare v1=; #break #range (8, 15) #declare v1=; #break #range (16, 23) #declare v1=<0, sin(a*45*(pi/180)), cos(a*45*(pi/180))>; #break #end #if (a!=10 & a!=14 & a!=16 & a!=18 & a!=20 & a!=22) object { Ball texture { Silver } scale 1/3 translate v1 } #end #declare b=0; #declare d2=d1/3; #while (b<24) #switch(b) #range (0, 7) #declare v2=v1+d2*; #break #range (8, 15) #declare v2=v1+d2*; #break #range (16, 23) #declare v2=v1+d2*<0, sin(b*45*(pi/180)), cos(b*45*(pi/180))>; #break #end #if (b!=10 & b!=14 & b!=16 & b!=18 & b!=20 & b!=22) object { Ball texture { Silver } scale 1/9 translate v2 } #end #declare c=0; #declare d3=d2/3; #while (c<24) #switch(c) #range (0, 7) #declare v3=v2+d3*; #break #range (8, 15) #declare v3=v2+d3*; #break #range (16, 23) #declare v3=v2+d3*<0, sin(c*45*(pi/180)), cos(c*45*(pi/180))>; #break #end #if (c!=10 & c!=14 & c!=16 & c!=18 & c!=20 & c!=22) object { Ball texture { Silver } scale 1/27 translate v3 } #end #declare d=0; #declare d4=d3/3; #while (d<24) #switch(d) #range (0, 7) #declare v4=v3+d4*; #break #range (8, 15) #declare v4=v3+d4*; #break #range (16, 23) #declare v4=v3+d4*<0, sin(d*45*(pi/180)), cos(d*45*(pi/180))>; #break #end #if (d!=10 & d!=14 & d!=16 & d!=18 & d!=20 & d!=22) object { Ball texture { Silver } scale 1/81 translate v4 } #end #declare d=d+1; #end #declare c=c+1; #end #declare b=b+1; #end #declare a=a+1; #end