]> git.tdb.fi Git - libs/gl.git/blobdiff - source/lighting.h
Rename Lighting::sky_direction to zenith_direction
[libs/gl.git] / source / lighting.h
index 8b3feb5f343af74622aa26b8b9689697a8da09a3..40360fc588508e9cc13cfd63f1b826f972017fea 100644 (file)
@@ -22,8 +22,10 @@ class Lighting: public Bindable<Lighting>
 private:
        Color ambient;
        Color sky_color;
-       Vector3 sky_direction;
+       Vector3 zenith_direction;
        Geometry::Angle<float> horizon_angle;
+       Color fog_color;
+       float fog_density;
        std::vector<const Light *> lights;
 
 public:
@@ -37,14 +39,27 @@ public:
        /** Sets the color of the sky at zenith.  Has no effect without shaders. */
        void set_sky_color(const Color &);
 
-       /** Sets the direction of the sky.  Defaults to positive Z axis.  Has no
+       /** Sets the direction of the zenith.  Defaults to positive Z axis.  Has no
        effect without shaders. */
-       void set_sky_direction(const Vector3 &);
+       void set_zenith_direction(const Vector3 &);
+
+       /// Deprecated alias for set_zenith_direction
+       void set_sky_direction(const Vector3 &d) { set_zenith_direction(d); }
 
        /** Sets the angle where skylight cuts off, counted from the true horizon.
        Has no effect without shaders. */
        void set_horizon_angle(const Geometry::Angle<float> &);
 
+       /** Sets the fog color, which is blended into distant surfaces. */
+       void set_fog_color(const Color &);
+
+       /** Sets the density of the fog.  Zero means no fog. */
+       void set_fog_density(float);
+
+       /** Sets the density of the fog so that the blending factor at the given
+       distance is 50%. */
+       void set_fog_half_distance(float);
+
        /** Attaches a light source.  If the attachment index is greater than
        LightUnit::get_n_units, the Lighting can't be bound for legacy mode. */
        void attach(unsigned, const Light &);