FinalComposite.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Copyright (C) 2009-present, Panagiotis Christopoulos Charitos and contributors.
  2. // All rights reserved.
  3. // Code licensed under the BSD License.
  4. // http://www.anki3d.org/LICENSE
  5. #pragma once
  6. #include <AnKi/Renderer/RendererObject.h>
  7. #include <AnKi/Resource/ImageResource.h>
  8. namespace anki {
  9. /// @addtogroup renderer
  10. /// @{
  11. ANKI_CVAR(NumericCVar<F32>, Render, FilmGrain, 16.0f, 0.0f, 250.0f, "Film grain strength")
  12. ANKI_CVAR(NumericCVar<F32>, Render, Sharpness, (ANKI_PLATFORM_MOBILE) ? 0.0f : 1.0f, 0.0f, 1.0f, "Sharpen the image. It's a factor")
  13. /// Post-processing stage.
  14. class FinalComposite : public RendererObject
  15. {
  16. public:
  17. FinalComposite() = default;
  18. ~FinalComposite() = default;
  19. Error init();
  20. /// Populate the rendergraph.
  21. void populateRenderGraph(RenderingContext& ctx);
  22. RenderTargetHandle getRenderTarget() const
  23. {
  24. return m_runCtx.m_rt;
  25. }
  26. private:
  27. ShaderProgramResourcePtr m_prog;
  28. Array<ShaderProgramPtr, 2> m_grProgs; ///< [Debug on or off]
  29. ShaderProgramResourcePtr m_visualizeRenderTargetProg;
  30. ShaderProgramPtr m_visualizeRenderTargetGrProg;
  31. RenderTargetDesc m_rtDesc;
  32. class
  33. {
  34. public:
  35. RenderTargetHandle m_rt;
  36. } m_runCtx;
  37. Error initInternal();
  38. void run(RenderPassWorkContext& rgraphCtx);
  39. };
  40. /// @}
  41. } // end namespace anki