// Spheres / Pagoda // 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. #version 3.0 global_settings { assumed_gamma 2.2 } camera { location <100,80,100> angle 47 look_at <-5, -26, 0> } light_source {<50, 80, 100> color rgb <1,1,1>} light_source {<-20, 30, 18> color rgb <1,1,1>} #declare Rlo =5 #declare Rso =0.6 #declare Tx =1 #while (Tx<4) #declare Tz =1 #while (Tz<5) #declare Elem = union { #declare A =0 #while (A<6.29) #switch (Tz) #case (1) #declare Rlysw=0 #declare Rldsw=2 #declare Rssw=1 #declare Rsysw=0 #declare Rsad=0 #declare Cysw=1 #declare Cyp=4 #declare Cyt=1 #declare Cxp=1 #declare Cxt=Tx-Tz #declare Czp=Tz #declare Czt=Tx #declare Czsw=1 #break #case (2) #declare Rlysw=1 #declare Rldsw=1 #declare Rssw=0 #declare Rsysw=0 #declare Rsad=0.6 #declare Cysw=0 #declare Cyp=2 #declare Cyt=1 #declare Cxp=1 #declare Cxt=0.5*Tx #declare Czp=Tz #declare Czt=Tx/3 #declare Czsw=1 #break #case (3) #declare Rlysw=-1 #declare Rldsw=1 #declare Rssw=0 #declare Rsysw=1 #declare Rsad=0.4 #declare Cysw=1 #declare Cyp=3 #declare Cyt=1 #declare Cxp=0.2 #declare Cxt=Tx-Tz #declare Czp=Tz #declare Czt=Tx #declare Czsw=1 #break #case (4) #declare Rlysw=0 #declare Rldsw=1 #declare Rssw=1 #declare Rsysw=0 #declare Rsad=0.3 #declare Cysw=1 #declare Cyp=4 #declare Cyt=1 #declare Cxp=0.6 #declare Cxt=Tx-Tz #declare Czp=4 #declare Czt=Tx/2 #declare Czsw=0 #break #end #declare Rl =Rlo/(2-sin(A)*Rlysw)*Rldsw #declare Rs =Rssw*Rso+Rsysw*2*Rso/(2-sin(A))/(2-sin(A))+Rsad #declare Cy =Cyp*(Cysw*Rl+(1-Cysw)*Rlo)*sin(A*Cyt) #declare Cx =Cxp*Rl*cos(A*Cxt) #declare Cz =Czp*Rl*(Czsw*cos(A*Czt)+(1-Czsw)*sin(A*Czt)) #declare Scalexz=1+pow((Rl-Cy)/Rl,4)*Rl/Rs/500 sphere { <0, 0, 0> Rs scale translate texture { pigment {color rgb <0.8-Cy/Rl/20, 0.8-Cy/Rl/20, 0.8-Cy/Rl/100 >} finish {ambient 0.02 phong 1 diffuse 0.5} } } #declare A = A+0.1 #end // I rendered Gallery's image by "A = A+0.01". no_shadow } union { #declare Tcirc =1 #while (Tcirc<4) union { Elem rotate y*Tcirc*120 } #declare Tcirc = Tcirc+1 #end translate } #declare Tz = Tz+1 #end #declare Tx = Tx+2 #end sky_sphere { pigment { gradient y color_map { [ 0.02 color rgb <0.3,0.3,1> ] [ 1.00 color rgb <1,1,0.8> ] } scale 1 translate 0 } }