public Downscaler(GraphicsDevice graphics, ContentManager content, GBuffer targets, FullScreenDraw fullScreen)
        {
            this.graphics   = graphics;
            this.targets    = targets;
            this.fullScreen = fullScreen;

            this.downscale = content.Load <Effect>("Downscale");

            Rebuild();
        }
        public DeferredRenderer(GraphicsDevice graphics, ContentManager content, GBufferInitParams p)
        {
            this.graphics = graphics;
            this.content  = content;
            fullScreen    = new FullScreenDraw(graphics);

            fillEffect       = new FillGBufferEffect(content.Load <Effect>("FillGBuffer"));
            backgroundEffect = new BackgroundEffect(content.Load <Effect>("Background"));
            postEffect       = content.Load <Effect>("PostProcess");
            clearEffect      = content.Load <Effect>("Clear");

            targets = new GBuffer(graphics, p);

            lighting   = new LightingStep(graphics, content, targets, fullScreen);
            downscaler = new Downscaler(graphics, content, targets, fullScreen);
            bloom      = new Bloom(graphics, content, fullScreen);

            luminanceAverager = new Averager(graphics, content, fullScreen);

            drawStep.GraphicsDevice = graphics;
        }