diff options
Diffstat (limited to 'render_povray/templates_pov/mediasky.pov')
-rw-r--r-- | render_povray/templates_pov/mediasky.pov | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/render_povray/templates_pov/mediasky.pov b/render_povray/templates_pov/mediasky.pov new file mode 100644 index 00000000..9347424e --- /dev/null +++ b/render_povray/templates_pov/mediasky.pov @@ -0,0 +1,147 @@ +// This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. +// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a +// letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA. + +// Persistence of Vision Raytracer Scene Description File +// File: mediasky.pov +// Author: Chris Huff +// Description: This file demonstrates the use of scattering media +// to create a sky with clouds. It attempts to simulate an actual +// atmosphere: there is an outer shell of media that scatters blue +// light, and an inner cloud shell that scatters white. The scattered +// light from the outer shell makes the sky appear blue, and the light +// that passes through is tinted orange by its passage, giving the +// clouds an orange color. +// +// Updated: 2013/02/15 for 3.7 +// +// -w320 -h180 +// +w640 +h360 +a0.3 +// use 16:9 aspect ratio +// +//******************************************* + +#version 3.7; + +#include "colors.inc" + +global_settings { + assumed_gamma 1.0 + max_trace_level 5 +} + +#declare CamPos = <-5, 1,-25>; + +camera { + location CamPos + up y + right x*image_width/image_height // keep propotions with any aspect ratio + look_at < 0, 7.5, 0> + angle 90 +} + +light_source {CamPos, color Gray30 media_interaction off} +//light_source {vrotate(z, <-1, 8, 0>)*500000, color rgb < 1, 0.8, 0.65>} + +#declare SunPos = vrotate(z, <-12, 8, 0>)*1000000; +light_source {SunPos, color White*2} +sphere {SunPos, 75000 + texture { + pigment {color White} + finish {ambient 10 diffuse 0} + } + no_shadow +} + + +#declare PlanetSize = 50000; + +//the ocean +sphere {< 0, 0, 0>, 1 + scale PlanetSize + translate -y*PlanetSize + hollow + texture { +// pigment {color rgb < 1, 1, 1>} + pigment {color rgbf < 1, 1, 1, 1>} + finish { + ambient 0 diffuse 0.7 + reflection {0.5, 1 + fresnel//use the fresnel form of angle-dependant reflection + metallic//use metallic reflection + } + conserve_energy + metallic//use metallic highlights + } + normal {bumps bump_size 0.075 scale < 4, 1, 1>*0.025} + } + interior { + ior 1.33//required for fresnel reflection + media { + method 3 + samples 2 intervals 1 + absorption color rgb < 0.75, 0.5, 0.25>*0.005 + } + } +} +//the ocean floor +sphere {< 0, 0, 0>, 1 + scale PlanetSize - 100 + translate -y*PlanetSize + texture { + pigment {color rgb 1} + } +} + +#macro SkyShell(minAlt, maxAlt, Int) + difference { + sphere {< 0, 0, 0>, 1 scale (PlanetSize + maxAlt)} + sphere {< 0, 0, 0>, 1 scale (PlanetSize + minAlt)} + hollow + texture {pigment {color rgbf 1}} + translate -y*PlanetSize + interior {Int} + } +#end + +//A much more realistic sky could be done using multiple layers +//of clouds to simulate clouds of different densities and with +//different altitudes. Of course, this would render a lot slower... + +//the "cloud shell", creates clouds. +SkyShell(1000, 1300, + interior { + media { + method 3 aa_threshold 0.1 aa_level 3 + samples 4 intervals 1 + scattering {2, color White*0.0075 extinction 1} + density {wrinkles + scale < 5, 2, 2>*200 + warp {turbulence 2} + color_map { + [0 color rgb 1] + [0.5 color rgb 0.85] + [0.55 color rgb 0.035] + [1 color rgb 0.035] + } + } + } +/* media { + method 3 + samples 2 intervals 1 + scattering {2, color White*0.0075*0.015 extinction 1} + }*/ + } +) + +//the "atmosphere shell", creates the blue sky and orange light. +SkyShell(1001, 2200, + interior { + media { + method 3 + samples 2 intervals 1 + scattering {4, color rgb < 0.25, 0.6, 0.9>*0.00075 extinction 1} + } + } +) + |