#default {finish {ambient 0}} // Units are in feet. #declare inch=1/12; #declare inches=inch; camera { location <25,6,-10> look_at 0 right x*image_width/image_height //added by Thomas de Groot 5/25/2008 // angle 10 } // The grounds difference { plane {y, 0} box {<-14,-16,-20>,<14,1,20>} pigment {color rgb 1} } #declare garden_light = union { cylinder {0, y*4*inches, 1/2*inches} torus {4*inches, inch/4 translate y*4*inches} torus {4*inches, inch/4 translate y*6*inches} torus {4*inches, inch/4 translate y*8*inches} cone {y*8.25*inches, 4*inches, y*9*inches, 2*inches} cylinder {y*4*inches, y*8*inches, inch/4 translate z*4*inches rotate y*045} cylinder {y*4*inches, y*8*inches, inch/4 translate z*4*inches rotate y*135} cylinder {y*4*inches, y*8*inches, inch/4 translate z*4*inches rotate y*225} cylinder {y*4*inches, y*8*inches, inch/4 translate z*4*inches rotate y*315} cylinder {-z*4*inches,z*4*inches, inch/4 translate y*4*inches rotate y*045} cylinder {-z*4*inches,z*4*inches, inch/4 translate y*4*inches rotate y*-45} light_source { y*6*inches color rgb <6,5,4>/6 area_light x*inch,y*inch,15,15 adaptive 1 circular orient fade_distance 4 fade_power 2 looks_like { sphere{ 0, inch pigment {color rgb <6,5,4>/5} finish {ambient 1} } } } texture { pigment {color rgb 0} finish {specular 1} } } #declare c = -22; #while (c <= 22) object {garden_light translate <-16,0,c>} object {garden_light translate < 16,0,c>} #declare c = c + 11; #end #declare c = -7; #while (c <= 7) object {garden_light translate } object {garden_light translate } #declare c = c + 7; #end // The pool itself difference { box {<-14,-16,-20>,<14,0,20>} box {<-9,-15,-15>, <9,1,15>} texture { pigment {color rgb 1} normal {bumps scale 1/(12*50)} } } #declare tile = intersection { box {<1/4-6,0,1/4-6>*inches,<6-1/4,1/4,6-1/4>*inches} union { #declare corner = <6-1/2,0,6-1/2>*inches; sphere {corner, inch/4} sphere {corner*<1,0,-1>, inch/4} sphere {corner*<-1,0,1>, inch/4} sphere {corner*<-1,0,-1>, inch/4} cylinder {corner, corner*<1,0,-1>, inch/4} cylinder {corner, corner*<-1,0,1>, inch/4} cylinder {corner*<-1,0,-1>, corner*<1,0,-1>, inch/4} cylinder {corner*<-1,0,-1>, corner*<-1,0,1>, inch/4} box {corner, corner*<-1,0,-1>+y} } texture { pigment { gradient z color_map { [0.0 color rgb 0] [0.2 color rgb y/4] [0.5 color rgb z/2] [1.0 color rgb z/3] } turbulence 2.5 } finish {specular 1} scale 1/2 } } #declare c = -14.5; #while (c <= 14.5) object {tile rotate -z*90 translate <-9,-6*inches,c>} object {tile rotate -z*90 translate <-9,-18*inches,c>} object {tile rotate -z*90 translate <-9,-30*inches,c>} object {tile translate <-9.5,0,c>} object {tile translate <-10.5,0,c>} object {tile translate <-11.5,0,c>} object {tile rotate z*90 translate <9,-6*inches,c>} object {tile rotate z*90 translate <9,-18*inches,c>} object {tile rotate z*90 translate <9,-30*inches,c>} object {tile translate <9.5,0,c>} object {tile translate <10.5,0,c>} object {tile translate <11.5,0,c>} #declare c = c + 1; #end #declare c = -8.5; #while (c <= 8.5) object {tile rotate -x*90 translate } object {tile rotate -x*90 translate } object {tile rotate -x*90 translate } object {tile translate } object {tile translate } object {tile translate } object {tile rotate x*90 translate } object {tile rotate x*90 translate } object {tile rotate x*90 translate } object {tile translate } object {tile translate } object {tile translate } #declare c = c + 1; #end #declare c1 = 0; #while (c1 < 3) #declare c2 = 0; #while (c2 < 3) object {tile translate <9.5+c1, 0, 15.5+c2>} object {tile translate <9.5+c1, 0, 15.5+c2> scale < 1,1,-1>} object {tile translate <9.5+c1, 0, 15.5+c2> scale <-1,1, 1>} object {tile translate <9.5+c1, 0, 15.5+c2> scale <-1,1,-1>} #declare c2 = c2 + 1; #end #declare c1 = c1 + 1; #end #declare pool_light = union { difference { sphere {0, 1/2} sphere {0, 9/20} texture { pigment {color transmit 1} finish {specular 1} } interior { ior 1.5 } scale <1,1/4,1> } light_source { y/16 color rgb 1 fade_distance 1/2 fade_power 2 } } #declare c = -12.5; #while (c <= 12.5) object {pool_light rotate -z*90 translate <-9,-4,c>} object {pool_light rotate -z*90 translate <-9,-12,c>} object {pool_light rotate z*90 translate <9,-4,c>} object {pool_light rotate z*90 translate <9,-12,c>} #declare c = c + 8; #end #declare c = -8; #while (c <= 8) object {pool_light rotate x*-90 translate } object {pool_light rotate x*-90 translate } object {pool_light rotate x*90 translate } object {pool_light rotate x*90 translate } #declare c = c + 8; #end // water plane { y, -6*inches texture { pigment {color transmit 1} finish {specular 1/2 reflection 1/4} normal {ripples 1/16 scale 2.5} } interior {ior 4/3} } #declare ball= // beachball added by Thomas de Groot 5/25/2008: sphere { <0,0.25,0>, 1 texture { pigment { radial frequency 8 color_map { [0.00 color rgb <1.0,0.4,0.2> ] [0.33 color rgb <0.2,0.4,1.0> ] [0.66 color rgb <0.4,1.0,0.2> ] [1.00 color rgb <1.0,0.4,0.2> ] } } finish{ specular 0.3 } } } // end of beachball #macro VRand_In_Box(Mn, Mx, RS) (< rand(RS), rand(RS), rand(RS)>*(Mx-Mn) + Mn) #end // the pool dimensions are 18x30ft, centered // beachball cloned by Jan Dvorak 26 May 2008 // subdivide the pool into equal cells and put a ball randomly in some of them #declare s=seed(3141592); #declare sp=6; #declare p=4/5; #declare c1=-9+sp/2; #while(c1<9) #declare c2=-15+sp/2; #while(c2<15) #if(rand(s) translate VRand_In_Box(<-1,0,-1>,<1,0,1>,s)*(sp/2-1) } #end #declare c2=c2+sp; #end #declare c1=c1+sp; #end //end of clone