#include "waves.inc" #include "colors.inc" // Standard Color definitions #include "metals.inc" // Standard Metal definitions #include "stones.inc" // Standard Metal definitions #include "textures.inc" // Standard Texture definitions #local Ra=seed(1);#macro R() rand(Ra) #end global_settings { assumed_gamma 1.0 max_trace_level 5 photons { count 20000 autostop 0 } } /***************************************/ /* Declares */ /***************************************/ #local Ra=seed(1);#macro R() rand(Ra) #end #declare A = -clock*4*pi; #include "functions.inc" light_source{<15000,25000,-25000> color rgb 1.3 photons { refraction on reflection on } } #declare P = function {y} #declare s2 = function(x,y,z,C) {y+.25*sin(C+pow((pow(x/2,2)+pow(z/2,2)),.5))} #declare s3 = function(x,y,z,C) {y+.125*sin(C+pow((pow(x/2,2)+pow(z/2.5,2))*1/2.5,.5))} #declare s4 = function(x,y,z,C) {y+4*sin(C+pow((pow(x/4,2)+pow(z/4,2)),.5))} #declare S = function(x,y,z,D) { P(x,y,z) + s2(x-500, y, z+500, D) + s3(x-500, y, z+100, D) + s3(x+100, y, z+1000, D) + s4(x-550, y, z+400, D) + s4(x-403, y, z+550, D*2+pi/3) } #declare M_Watx = material { texture { pigment { color rgbt <0.4,0.5,0.3, 0.9> } finish { diffuse 0.5 ambient 0.0 reflection { 0.05, 1.0 fresnel on } conserve_energy specular 0.4 roughness 0.003 } } interior { ior 1.33 fade_distance 0.5 fade_power 1001 } } object { isosurface { function { S(x,y,z,A) } max_gradient 10 contained_by{box{<-50,-20,0>,<50,4.5,20>}} //contained_by{box{<-3,-20,0>,<3,8,20>}} } material { M_Watx } hollow on photons { target refraction on reflection on collect off } } box { <-200,-20,0>,<100,8,1> translate z*25 texture { T_Grnt2 normal { agate 0.15 scale 0.15} finish { diffuse 0.9 phong 0.5 } scale 1 } // end of texture } plane {y,-19 pigment {rgb .75} } sphere { 0,2 translate <0,-17,18> pigment {rgb <.5,.5,1>} } camera{ //location <3*sin(clock*2*pi), 3,3*cos(clock*2*pi)> //location <4*cos(clock), 100+3*sin(clock), -20> location <4*cos(clock), 10+3*sin(clock), -20> look_at <0, 0, 30> //rotate y*1.6180339887*360 }