]> git.tdb.fi Git - libs/gl.git/blobdiff - source/shadowmap.h
Improvements for shadow mapping
[libs/gl.git] / source / shadowmap.h
index af3cf6f72c2b9af398e7faa317f6fdeaa810627f..986e0d96d039936b56758495da9a84954c007074 100644 (file)
@@ -29,6 +29,7 @@ private:
        Texture2D depth_buf;
        Vector3 target;
        float radius;
+       float depth_bias;
        ProgramData shdata;
 
 public:
@@ -39,8 +40,20 @@ public:
        covered by the ShadowMap. */
        void set_target(const Vector3 &, float);
 
+       /** Sets the darkness of shadows.  Must be in the range between 0.0 and 1.0,
+       inclusive.  Only usable with shaders, and provided through the
+       shadow_darkness uniform. */
+       void set_darkness(float);
+
+       /** Sets a distance beyond objects from which the shadow starts.  Expressed
+       in pixel-sized units.  Must be positive; values less than 1.0 are not
+       recommended.  Larger values produce less depth artifacts, but may prevent
+       thin objects from casting shadows on nearby sufraces. */
+       void set_depth_bias(float);
+
        /** Sets the texture unit to bind the shadow map to during the rendering
-       phase.  The default is texture unit 3. */
+       phase.  Provided to shaders through the shadow and shadow_unit uniforms.
+       The default is texture unit 3. */
        void set_texture_unit(unsigned);
 
        virtual void render(Renderer &, const Tag &) const;