X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Feffects%2Fshadowmap.h;h=6c4e1e501713d84aa393652b8eefb32912a3a0ec;hb=cdedbb34eff07f188c536167592958e315d53a9b;hp=c3c7bd55a7f53430937cce8faf6f6955b220f61d;hpb=a2b0d155023ca23afe7848ae5d17e0f7bc328525;p=libs%2Fgl.git diff --git a/source/effects/shadowmap.h b/source/effects/shadowmap.h index c3c7bd55..6c4e1e50 100644 --- a/source/effects/shadowmap.h +++ b/source/effects/shadowmap.h @@ -12,6 +12,7 @@ namespace Msp { namespace GL { +class DirectionalLight; class Light; /** @@ -29,30 +30,30 @@ private: unsigned index; Rect region; Camera shadow_camera; + Renderable *shadow_caster; }; unsigned width; unsigned height; const Lighting *lighting; std::vector lights; - Renderable &shadow_caster; Framebuffer fbo; Texture2D depth_buf; const Sampler &sampler; Vector3 target; - float radius; - float depth_bias; - float darkness; + float radius = 1.0f; + float depth_bias = 4.0f; + float darkness = 1.0f; ProgramData shdata; - bool rendered; + bool rendered = false; std::string debug_name; - ShadowMap(unsigned, unsigned, Renderable &, const Lighting *, Renderable &); + ShadowMap(unsigned, unsigned, Renderable &, const Lighting *); public: - ShadowMap(unsigned, Renderable &, const Light &, Renderable &); - ShadowMap(unsigned, unsigned, Renderable &, const Lighting &, Renderable &); + ShadowMap(unsigned, Renderable &, const DirectionalLight &, Renderable &); + ShadowMap(unsigned, unsigned, Renderable &, const Lighting &); - void add_light(const Light &, unsigned); + void add_light(const DirectionalLight &, unsigned, Renderable &); /** Sets the ShadowMap target point and radius. The transformation matrix is computed so that a sphere with the specified parameters will be completely