]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/sky.h
Track the number of layers in Framebuffer
[libs/gl.git] / source / effects / sky.h
index 782aef1ceb1d0b0faa2c5e58a6407118834b0457..7d8933d4a65f4a6facbb7799fbb99f59293bc6bb 100644 (file)
@@ -13,9 +13,14 @@ class Mesh;
 class Program;
 
 /**
-Renders a procedurally generated sky at the background.  Based on the paper
-"A Scalable and Production Ready Sky and Atmosphere Rendering Technique" by
-Sébastien Hillaire (https://sebh.github.io/publications/egsr2020.pdf).
+Renders a procedurally generated sky at the background.
+
+In addition to the background, the transmittance of the sun light is calculated
+to produce realistic lighting at dawn and dusk.
+
+Based on the techniques described in "A Scalable and Production Ready Sky and
+Atmosphere Rendering Technique" by Sébastien Hillaire
+(https://sebh.github.io/publications/egsr2020.pdf).
 */
 class Sky: public Effect
 {
@@ -39,6 +44,24 @@ public:
                static Planet earth();
        };
 
+       struct Template: Effect::Template
+       {
+               class Loader: public DataFile::DerivedObjectLoader<Template, Effect::Template::Loader>
+               {
+               private:
+                       static ActionMap shared_actions;
+
+               public:
+                       Loader(Template &, Collection &);
+               private:
+                       virtual void init_actions();
+               };
+
+               DirectionalLight *sun = 0;
+
+               virtual Sky *create(const std::map<std::string, Renderable *> &) const;
+       };
+
 private:
        Planet planet;
        DirectionalLight &sun;