public LightManager(ContentManager content, GraphicsDevice device) { this.quadRender = new QuadRender(device); this.device = device; shadowmapResolver = new ShadowmapResolver(device, quadRender, ShadowmapSize.Size256, ShadowmapSize.Size1024); shadowmapResolver.LoadContent(content); screenShadows = new RenderTarget2D(device, device.Viewport.Width, device.Viewport.Height); }
public void Cast(SpriteBatch batch, ShadowmapResolver resolver) { BeginDrawingShadowCasters(); batch.Begin(); CastedItems.ForEach(item => { batch.Draw(item.Texture, ToRelativePosition(Vector2.Zero), Color.Black); batch.Draw(item.Texture, ToRelativePosition(item.Position), Color.Black); }); batch.End(); EndDrawingShadowCasters(); resolver.ResolveShadows(RenderTarget, RenderTarget, Position()); }