// Spheres / Foot // Please use freely for non comercial purpose. // All rights reserved by Tsutomu HIGO, Oct. 11, 1998 // // *CAUTION // This scene requires large RAM for high quality. // Please adjust the number of spheres by the increasing value // of parameter A. . I presetted 1/10. #version 3.0 global_settings { assumed_gamma 2.2 } camera { location <-100,80,-100> angle 50 look_at <0, 0, 0> } light_source {<50, 80, -100> color rgb <1,1,1>} #declare Rlo =5 #declare Rso =0.6 #declare Tx =1 #while (Tx<5) #declare Tz =1 #while (Tz<6) union { #declare A =0 #while (A<6.29) #switch (Tx) #case (4) #declare Cxt=Tz #declare Rl =Rlo*pow((1+sin(A*Cxt))/(1+1),2) #declare Cy =0 #declare Cx =Rl*cos(A) #declare Cz =Rl*sin(A) #declare Rs =2*Rso*sin(A*Cxt)+0.5 #break #case (3) #declare Cxt=Tz #declare Rl =Rlo*pow((1+sin(A*Cxt))/(1+1),2) #declare Cy =0 //Rl*cos(A) #declare Cx =Rl*cos(A) #declare Cz =Rl*sin(A) #declare Rs =2*Rso*pow(pow(sin(A*Cxt),2),0.5)+0.5 #break #case (2) #declare Cxt=Tz #declare Rl =Rlo*pow((1+sin(A*Cxt))/(1+1),2) #declare Cy =0 //Rl*cos(A) #declare Cx =Rl*cos(A) #declare Cz =Rl*sin(A) #declare Rs =2*Rso*pow(pow(cos(A*Cxt),2),0.5) #break #case (1) #declare Cxt=Tz #declare Rl =Rlo*pow((1+sin(A*Cxt))/(1+1),2) #declare Cy =0 //Rl*cos(A) #declare Cx =Rl*cos(A) #declare Cz =Rl*sin(A) #declare Rs =2*Rso*cos(A*Cxt) #break #end sphere { <0, 0, 0> Rs translate texture { pigment {color rgb < 0.8-Rl/2, 0.3, 0.6 >} finish {ambient 0.3 phong 0.5 crand 0.3} } } #declare A = A+0.2 #end // I rendered Gallery's image by "A = A+0.02". no_shadow scale 2 translate } #declare Tz = Tz+1 #end #declare Tx = Tx+1 #end sky_sphere { pigment { gradient y color_map { [ 0.002 color rgb <1,1,0.8> ] [ 1.00 color rgb <0.3,0.3,1> ] } scale 1 translate 0 } }