public PostEffectManager(Common.IO.FileSystem fileSystem, Common.ResourceManager resourceManager, Backend backend, int width, int height) { if (fileSystem == null) throw new ArgumentNullException("fileSystem"); if (resourceManager == null) throw new ArgumentNullException("resourceManager"); if (backend == null) throw new ArgumentNullException("backend"); ResourceManager = resourceManager; Backend = backend; RenderTargetManager = new Post.RenderTargetManager(Backend); TemporaryRenderTargets[0] = Backend.CreateRenderTarget("post_0", new Definition(width, height, false, new List<Definition.Attachment>() { new Definition.Attachment(Definition.AttachmentPoint.Color, Renderer.PixelFormat.Rgba, Renderer.PixelInternalFormat.Rgba16f, Renderer.PixelType.Float, 0) })); TemporaryRenderTargets[1] = Backend.CreateRenderTarget("post_1", new Definition(width, height, false, new List<Definition.Attachment>() { new Definition.Attachment(Definition.AttachmentPoint.Color, Renderer.PixelFormat.Rgba, Renderer.PixelInternalFormat.Rgba16f, Renderer.PixelType.Float, 0) })); QuadMesh = Backend.CreateBatchBuffer(); QuadMesh.Begin(); QuadMesh.AddQuad(new Vector2(-1, -1), new Vector2(2, 2), Vector2.Zero, new Vector2(1, 1)); QuadMesh.End(); Sprite = Backend.CreateSpriteBatch(); // Setup effects ScreenSpaceReflections = new Effects.ScreenSpaceReflections(Backend, ResourceManager, QuadMesh); AdaptLuminance = new Effects.AdaptLuminance(Backend, ResourceManager, QuadMesh); Bloom = new Effects.Bloom(Backend, ResourceManager, QuadMesh); LensFlares = new Effects.LensFlares(Backend, ResourceManager, QuadMesh); Tonemap = new Effects.Tonemap(Backend, ResourceManager, QuadMesh); Gamma = new Effects.Gamma(Backend, ResourceManager, QuadMesh); FXAA = new Effects.FXAA(Backend, ResourceManager, QuadMesh); SMAA = new Effects.SMAA(Backend, fileSystem, ResourceManager, QuadMesh); // Default settings HDRSettings.KeyValue = 0.115f; HDRSettings.AdaptationRate = 0.5f; HDRSettings.BlurSigma = 3.0f; HDRSettings.BloomThreshold = 9.0f; HDRSettings.EnableBloom = true; HDRSettings.EnableLensFlares = true; ScreenSpaceReflectionsSettings.Enable = false; }