#version unofficial MegaPOV 0.5; #include "colors.inc" light_source { <2,5,-5> color rgb +001.000} light_source { <-1,3.0,-.5> color rgb +000.400} light_source { <-5,2,-7> color rgb <0,0,.5> shadowless} camera { location <0,3.5,-5> right <1.5,0,0> up <0,1,0> look_at <0,0,-.2> angle 45 } #declare a= cylinder { <+0.00,-0.10,+0.00>, <+0.00,+0.10,+0.00>, 1.10 pigment {Grey} } #declare b= cylinder { <+0.00,-0.15,+0.00>, <+0.00,+0.15,+0.00>, 1.05 pigment {Grey} } #declare c= cylinder { <+0.00,-0.10,+0.00>, <+0.00,+0.10,+0.00>, 0.95 pigment {Grey} } #declare d= cylinder { <+0.00,-0.15,+0.00>, <+0.00,+0.15,+0.00>, 0.90 pigment {Grey} } #declare e= cylinder { <+0.00,-0.055,+0.00>, <+0.00,+0.055,+0.00>, 1.05 } #declare f= cylinder { <+0.00,-0.15,+0.00>, <+0.00,+0.15,+0.00>, 0.95 } #declare g= difference { object{a} object{b} } #declare h= difference { object{c} object{d} } #declare i= difference { object{e} object{f} } #declare j= cylinder { <+0.00,-0.15,+0.00>, <+0.00,+0.15,+0.00>, 1.10 } #declare k= cylinder { <+0.00,-0.20,+0.00>, <+0.00,+0.20,+0.00>, 0.90 } #declare l= difference { object{j} object{k} box{<-1.20,-0.30,-1.20><+0.00,+0.30,+0.00>} } #declare m1= object{l translate <+0.00,+0.00,+1.20>} #declare m2= union { object{l rotate <+000.00,+180.00,+000.00>} object{l rotate <+000.00,+180.00,+000.00> translate <+1.20,+0.00,+0.00>} } #declare n= union { object{g} object{h} object{i pigment{color White}} } #declare o1= union { object{g} object{h} object{i pigment{color Blue}} translate<+0.00,+0.00,+1.20> } #declare o2= union { object{g} object{h} object{i pigment{color Yellow}} translate<+0.00,+0.00,+1.20> } #declare o3= union { object{g} object{h} object{i pigment{color Green}} translate<+0.00,+0.00,+1.20> } #declare o4= union { object{g} object{h} object{i pigment{color Red}} translate<+0.00,+0.00,+1.20> } #declare p= difference { object{n} #declare counter=0; #while(counter<4) object{m1 rotate<+00.00,+90.00*counter,+00.00>} #declare counter=counter+1; #end } #declare q1= difference { object{o1} object{m2} } #declare q2= difference { object{o2} object{m2} rotate <+00.00,+90.00,+00.00> } #declare q3= difference { object{o3} object{m2} rotate <+000.00,+180.00,+000.00> } #declare q4= difference { object{o4} object{m2} rotate <+000.00,+270.00,+000.00> } object{p} object{q1} object{q2} object{q3} object{q4} #declare r1=function{sqrt((x*x)+(z*z))} #declare r2=function{r1(x,y,z)*22.5*pi/180} #declare r3=function{x*cos(r2)+z*sin(r2)} #declare r4=function{-1*x*sin(r2)+z*cos(r2)} box { <-50,-.15,-50> <50,-.30,50> pigment{color rgb <0,0,.3>} normal{bozo scale <2,4,2>} finish{reflection .9} } #declare fmh= function { (noise3d(x,y,z) +noise3d(2*x,2*y,2*z)*.5 +noise3d(3*x,3*y,3*z)*.333333 +noise3d(4*x,4*y,4*z)*.25)*1/(1+.5+.333333+.25) } sphere { <0,-200,0> 210 hollow pigment { function(fmh) color_map { [0.45 color rgb <0.30,0.30,1.00>] [0.85 color rgb <1.00,1.00,1.00>] } } finish{ambient .8} }