// With thanks to Kyle Hayward's shadow mapping demo at http://graphicsrunner.blogspot.com/
        public ShadowDecorator(Device device)
        {
            _device        = device;
            _cameraFrustum = new Frustum3D(Matrix3D.Identity);

            // Create new floating point render target
            _shadowRenderTarget = new Texture(device, ShadowMapSize, ShadowMapSize, 1,
                                              Usage.RenderTarget, Format.G32R32F, Pool.Default);

            // Create depth buffer to use when rendering to the shadow map
            _shadowDepthBuffer = Surface.CreateDepthStencil(_device, ShadowMapSize, ShadowMapSize,
                                                            Format.D24X8, MultisampleType.None, 0, true);

            _shadowMapSprite = new Sprite(device);

            _blur = new BlurComponent(_device, ShadowMapSize);
        }
        public ShadowDecorator(Device device)
        {
            _device = device;
            _cameraFrustum = new BoundingFrustum(Matrix3D.Identity);

            // Create new floating point render target
            _shadowRenderTarget = new Texture(device, ShadowMapSize, ShadowMapSize, 1,
                Usage.RenderTarget, Format.G32R32F, Pool.Default);

            // Create depth buffer to use when rendering to the shadow map
            _shadowDepthBuffer = Surface.CreateDepthStencil(_device, ShadowMapSize, ShadowMapSize,
                Format.D24X8, MultisampleType.None, 0, true);

            _shadowMapSprite = new Sprite(device);

            _blur = new BlurComponent(_device, ShadowMapSize);
        }