namespace Msp {
namespace GL {
+class DirectionalLight;
class Light;
/**
unsigned index;
Rect region;
Camera shadow_camera;
+ Renderable *shadow_caster;
};
unsigned width;
unsigned height;
const Lighting *lighting;
std::vector<ShadowedLight> 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