#declare Scale_x=6 ; #declare Scale_y=4 ; #declare Damp=.9 ; #declare Lacunarity=3 ; #declare Octave=6 ; #declare Offset=0.9 ; #declare Gain=10 ; #declare Wave_Height=0.05 ; #declare Cretes=function{f_ridged_mf(x/Scale_x, y/Scale_y, 0,Damp,Lacunarity,Octave,Offset,Gain,1)} ; #declare Houle=function{sin(y)*.5 +sin(x*.8+y*.2) +sin(x*2+y*-.2)*.3 } #declare F_bozo=function{pattern {bozo warp {turbulence <1,1,0>*0.4 omega 0} scale <8,1,1>*7}} #declare Element_houle=function{F_bozo(x,y,0)-.5} #undef Houle2 #declare Houle2=function{ Element_houle(x,y,z)*4 +Element_houle(x*6,y*4,z*4)*.2 } #declare Foam_Level=7; #declare terrain_coast= object{HF_roche translate Foam_Level*z} #declare T_eau=texture { pigment { color rgbt 1 } finish { ambient 0 specular 0 roughness 0.0001 conserve_energy reflection { 0.0 , 1.0 fresnel on falloff 1 exponent 0.6 metallic 0.0 } } } #declare T_mousse=texture {pigment{ color rgb 1 transmit .2 } finish{ambient 0 diffuse 1 } } #declare M_Iso_Sea = material // M_Iso_Sea { texture{ pigment_pattern{object{terrain_coast scale z*5 translate Foam_Level*z rgb 0, rgb 1}} texture_map{ [0 T_eau] [1 T_mousse] } scale .1 warp{turbulence <1,1,.1>*3 omega .6 lambda 2} scale 10 scale 1 warp{turbulence <1,1,1>*2 octaves 7omega 1 lambda 3} //scale 1/1 } interior { ior 1.333 caustics 2.0 media { samples 1,30 absorption rgb <1.0, 0.1, 0.15>*.5 scattering { 2 , rgb 0.005 // mie hazy scattering extinction 0 } } } } //Geometry isosurface { function { z*.5 -(Houle2(x,y-z*2,z)*6 +Cretes(x,y,z)*.8)*Wave_Height } contained_by {box{<-1000,-1000,-400>,<1000,1000,1>}} threshold 0 accuracy 0.001 max_gradient 1 max_trace 1 no_reflection hollow scale <10,10,10> translate <0,0,0> material { M_Iso_Sea } }