/***************************************************************** Persistence of Vision Ray Tracer Scene Description File This file was generated for POV-Ray V3.1 by Moray V3.3 For Windows Copyright (c) 1993-2000 Lutz + Kretzschmar File name : TdG_Sky_03.inc Version : 3.5 Description : A sky with three cloud layers (2001) With a scattering media (2003) Orientation for Moray scenes (2001) Can be oriented for POV-Ray scenes (2002) Date : September 2001. Adapted in August 2002, July 2003 Author : Thomas A. M. de Groot E-mail : t.degroot@inter.nl.net Copyright (C) 2002, 2003. All rights reserved. ******************************************************************/ default {texture {pigment { rgb <1,0,0> }}} // If you want to test: #local Test = true; // Otherwise, set it to false. /*************************************************************************/ #ifndef (SkyScale) #local SkyScale = 100; #end #ifndef (Scat) #local Scat = 1; #end //1=isotropic; 2=Mie haze; 3=Mie murky; 4=Rayleigh; 5=Henyey-Greenstein #ifndef (E) #local E=0.6; #end //eccentricity (for Scat=5); + scatters towards light; - from light #local Haze = SkyScale; #ifndef (ExtraHaze) #local ExtraHaze = 10; #end //add extra haze #ifndef (AtmosphericHaze) #local AtmosphericHaze = true; #end //use of media #ifndef (UpperCloudLayer) #local UpperCloudLayer = true; #end #ifndef (IntermediateCloud_Layer) #local IntermediateCloud_Layer = true; #end #ifndef (LowerCloudLayer) #local LowerCloudLayer = true; #end #ifndef (UL) #local UL =0; #end //upper level rotation about z #ifndef (IL) #local IL =0; #end //intermediate level rotation about z #ifndef (LL) #local LL =0; #end //lower level rotation about z #ifndef (ToPOV) #local ToPOV = true; #end //for use with POV-Ray /*************************************************************************/ #if (Test) #local SkyScale = 100; #local Scat = 5; //1=isotropic; 2=Mie haze; 3=Mie murky; 4=Rayleigh; 5=Henyey-Greenstein #local E = 0.6; //eccentricity (for Scat=5); + scatters towards light; - from light #local ExtraHaze = 10; #local AtmosphericHaze = true; #local LowerCloudLayer = false; #local IntermediateCloud_Layer = false; #local UpperCloudLayer = true; #local UL =0; #local IL =0; #local LL =0; //see at the end for the view #end // // ******** MATERIALS ******* // #local ScatteringAir = material { texture { pigment { color rgb <1.0, 1.0, 1.0> } } interior { media { // DustyAir intervals 5 samples 5,100 variance 1.0/1000.0 ratio 0.99 scattering { Scat , rgb <0.03, 0.03, 0.03>/(SkyScale/ExtraHaze) #if (Scat=5) eccentricity E #end } } } } #local BlueSky = material { texture { pigment { gradient z color_map { [ 0.0 rgb <0.8958, 0.953325, 1.000000> ] [ 0.3 rgb <0.4479, 0.724052, 0.916667> ] [ 1.0 rgb <0.0000, 0.358694, 0.604133> ] } } } } #local UpperCloudTex = material { texture { pigment { bozo color_map { [ 0.00 rgbft <0.80, 0.80, 0.80, 0.0, 1.0> ] [ 0.50 rgbft <0.90, 0.90, 0.90, 0.0, 1.0> ] [ 0.70 rgbft <0.95, 0.95, 0.98, 0.0, 0.7> ] [ 0.90 rgbft <0.95, 0.95, 0.98, 0.0, 0.3> ] [ 1.00 rgbft <1.00, 1.00, 0.98, 0.0, 1.0> ] } turbulence 0.9 omega 0.7 ramp_wave } finish { ambient 1.0 diffuse 0.3 } scale <0.30, 0.70, 1.00> rotate 70.0*z translate <-1000.0, 2000.0, 0.0> } } #local IntermediateCloudTex = material { texture { pigment { bozo color_map { [ 0.0 rgbft <0.8, 0.8, 0.9, 0.0, 1.0> ] [ 0.2 rgbft <0.8, 0.8, 0.9, 0.0, 1.0> ] [ 0.5 rgbft <0.8, 0.8, 0.9, 0.0, 0.8> ] [ 1.0 rgbft <0.9, 0.9, 0.9, 0.0, 0.2> ] } turbulence 0.9 omega 0.7 ramp_wave } finish { ambient 1.0 diffuse 0.3 } scale <0.15, 0.40, 1.00> rotate 80.0*z translate <1500.0, -2000.0, 0.0> } } #local LowerCloudTex = material { texture { pigment { bozo color_map { [ 0.0 rgbft <0.8, 0.8, 0.8, 0.0, 1.0> ] [ 0.4 rgbft <0.8, 0.8, 0.8, 0.0, 1.0> ] [ 0.6 rgbft <0.8, 0.8, 0.8, 0.0, 0.6> ] [ 1.0 rgbft <0.8, 0.8, 0.8, 0.0, 0.2> ] } turbulence 0.7 omega 0.7 ramp_wave } finish { ambient 1.0 diffuse 0.5 } scale <0.10, 0.20, 1.00> rotate 90.0*z translate <-500.0, -10000.0, 0.0> } } // // ******** OBJECTS ******* // #local TdG_Sky_sphere3 = union { // NewSkyGroup sphere { // Sky_Sphere <0,0,0>,1 no_shadow hollow material {BlueSky} scale <6.00, 6.00, 3.00> } #if (AtmosphericHaze) sphere { // Atmospheric media <0,0,0>,1 hollow no_shadow material {ScatteringAir} scale <6.00, 6.00, 3.00> } #end #if (UpperCloudLayer) sphere { // UpperCloudLayer <0,0,0>,1 hollow material {UpperCloudTex} scale <5.40, 5.40, 2.00> rotate UL*z } #end #if (IntermediateCloud_Layer) sphere { // IntermediateCloud_Layer <0,0,0>,1 hollow material {IntermediateCloudTex} scale <5.30, 5.30, 1.50> rotate IL*z } #end #if (LowerCloudLayer) sphere { // LowerCloudLayer <0,0,0>,1 no_shadow hollow material {LowerCloudTex} scale <5.20, 5.20, 1.00> rotate LL*z } #end scale SkyScale translate z*-(SkyScale/2) // Convert from Moray to POV-Ray: #if (ToPOV) scale <1,1,-1> rotate <90,0,0> #end } // If you test: #if (Test) // Persistence of Vision Ray Tracer Scene Description File // File: ?.pov // Vers: 3.5 // Desc: Basic Scene Example // Date: mm/dd/yy // Auth: ? // #version 3.5; #include "colors.inc" global_settings { assumed_gamma 1.0 } //background { color <0.500, 0.500, 1.000> } // ---------------------------------------- camera { location <0.0, 0.5, -4.0> direction 1.5*z right x*image_width/image_height look_at <0.0, 0.5, 0.0> } // ---------------------------------------- light_source { <0, 0, 0> // light's position (translated below) color rgb <1, 1, 1>*1.0 // light's color translate <-SkyScale/2, SkyScale, SkyScale> } // ---------------------------------------- plane { y, -1 pigment { color rgb <0.7,0.5,0.3> } } #local Beachball = sphere { 0.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.6} } } #local No = 0; #local TransX = -10; #local TransZ = 0; #while (No < 50) object {Beachball translate } #local TransX = TransX+0.5; #local TransZ = TransZ+5; #local No= No+1; #end #local No = 0; #while (No < 50) object {Beachball translate } #local TransX = TransX+0.5; #local TransZ = TransZ-5; #local No= No+1; #end object {TdG_Sky_sphere3} #else // end of test is true object {TdG_Sky_sphere3} #end