// Persistence of Vision Ray Tracer Scene Description File // File: grass_tool_demo_scene.pov // Vers: 3.5 // Desc: Basic Scene Example // Date: 09/??/03 // Auth: // Auth: Marc Jacquier ,Sea Surface heightfields tiling by Gilles Tran (from http://www.oyonale.com/ressources/downloads/makecloud2_demo_sea.pov ) // #version 3.5; #declare Med_ciel_ok=0; //media sky switch #declare Nuages_ok=1; //clouds switch #declare Sea_ok=1; //sea switch #include "colors.inc" #include "functions.inc" global_settings { assumed_gamma 1.4 max_trace_level 50 } // ---------------------------------------- camera { location <0.0, 8, 15> direction 1.5*z right x*image_width/image_height look_at <0.0, 4, -10.0> } light_source { <0, 0, 0> color rgb <1, .9, .8>*2 translate <-20, 20, -10>*10000 } // ---------------------------------------- #if(Med_ciel_ok) #declare Mat_ciel =material { texture {pigment {color rgbt 1}} interior { media { samples 1,1 scattering { 2 , rgb <.5,.6,1> *.0010 } } } } #declare ciel= sphere {0, 6000 material {Mat_ciel} hollow no_shadow translate y*-5500} object{ciel} #else sky_sphere { pigment { color rgb <0.1,0.25,0.8> } } fog { fog_type 2 distance 1000 color rgb <.8,.9,1> fog_offset 0.0 fog_alt 50 turbulence 0.8 } #end #if (Nuages_ok) #declare Spl_nuage= spline{natural_spline 0,0 0.2, 0.8 1,0 } #macro Cirrus_map (N_plans,N_ordre) #declare Map_entr=Spl_nuage(N_ordre); texture {pigment{wrinkles color_map{ [0 rgb 1] [.10*Map_entr.x rgb 1 transmit 0.7*(1-1/N_plans)] [.30*Map_entr.x rgb 1 transmit 0.9*(1-1/N_plans)] [.50*Map_entr.x rgbt 1] } scale <1,2,1>*1000 translate z*-2000 turbulence 0.4 lambda 2 omega .7 } finish{ambient 0 diffuse 1.2} } #end #declare N_plans=12; // cloud planes number #declare Alt=200; #declare Epaisseur=100; // cloud thickness #declare Dist= Epaisseur/N_plans; //clouds #declare Cirrus= #declare C_plan=0; union{ #while(C_plan rotate <-20.0,0, -10.0>} #declare T_sec=texture // T_roche_1 { pigment { wrinkles color_map { [ 0.0 rgb <0.8, 0.7, 0.5> ] [ 0.434164 rgb <0.7, 0.6, 0.5> ] [ 0.455516 rgb 1 ] [ 0.683274 rgb <0.94, 0.92, 0.92> ] [ 0.718861 rgb <0.35, 0.27, 0.14> ] [ 0.797153 rgb <0.35, 0.27, 0.14> ] [ 0.846975 rgb <0.94, 0.92, 0.92> ] [ 1.0 rgb <0.78, 0.71, 0.71> ] } } normal { // wrinkles crackle , 2.0 } transform{Trans_text} } #declare T_HF = texture {gradient y scale 5 texture_map{ [0.40 T_sec finish{ambient 0 diffuse 0.34 }] [0.5 T_sec finish{ambient 0 diffuse 0.8 specular 0 }] } turbulence 0.1 lambda 2 omega .6 } #declare Terre= union{ height_field{ png "falaiseHF.png" // put your own picture here smooth translate <-.5,0,-.5> scale <40, 5, 40*640/1024> } plane { y, 0.02} texture {T_HF} } object{Terre} #declare MAt_mer_D_1 = material { texture { pigment { color rgbt <0.0, 0.0, 0.0, 1.0> } normal { bumps 0.1 scale 0.02 } finish { ambient 0 specular 4.0 roughness 0.0005 conserve_energy reflection { 0.0 , 3 fresnel on falloff 1.0 exponent 1 metallic 0.0 } } scale 4.0 } interior { caustics 2 ior 1.34 fade_distance 1.0 fade_power 1002.0 fade_color rgb <0.0, 0.7, 0.2> } } #if (Sea_ok) //Sea Surface heightfields tiling by Gilles Tran (from http://www.oyonale.com/ressources/downloads/makecloud2_demo_sea.pov ) #declare Resolution=2400; #declare SeaBase= height_field{ function Resolution,Resolution { (sin(y*pi*5)+1)/3+f_ridged_mf(x*14, y*30,z, 1.2,3,6,1.18,5,1)*0.55/3 // (sin(y*pi*5)*0.5+sin(x*pi*4)*0.5+1)*0.4+f_ridged_mf(x*7, y*15,z, 1.2,3,6,1.18,5,1)*0.54*0.2 } //translate <-.5,-.5,-.5> } #declare NX=40; #declare NZ=40; #declare SeaSurface=union{ #declare i=0; #while (i translate x #end #if (mod(i,2)=0) scale <1,1,-1> translate z #end /* #if (j=19 & i=0) photons { target reflection on refraction off } #end */ translate x*j+z*i } #declare j=j+1; #end #declare i=i+1; #end // texture{pigment{Red} finish{ambient 0 diffuse 1}} translate -x*NX/2 scale <1/NX,1,1/NZ> } object{SeaSurface scale <4000,1.5,-4000> rotate y*10 translate <0,1,40> hollow material{MAt_mer_D_1}} #end