4#include "../LowLevelRenderer/Interface/Texture.hpp"
10class GraphicsPipeline;
70 void CreateBloomResources();
71 void FreeBloomResources();
76 Configuration configuration;
77 glm::uvec2 screenSize;
80 Texture* outputTexture =
nullptr;
90 BloomData* bloomPasses;
91 uint32_t bloomPassCount;
92 Shader* bloomThresholdShader;
93 ShaderProgram* bloomThresholdShaderProgram;
94 GraphicsPipeline* bloomThresholdPipeline;
95 Shader* bloomDownscaleShader;
96 ShaderProgram* bloomDownscaleShaderProgram;
97 GraphicsPipeline* bloomDownscalePipeline;
98 Shader* bloomUpscaleShader;
99 ShaderProgram* bloomUpscaleShaderProgram;
100 GraphicsPipeline* bloomUpscalePipeline;
101 Shader* bloomBlurShader;
102 ShaderProgram* bloomBlurShaderProgram;
103 GraphicsPipeline* bloomBlurPipeline;
107 ShaderProgram* uberShaderProgram;
108 GraphicsPipeline* uberPipeline;
109 Buffer* uberUniformBuffer;
111 struct UberUniforms {
113 float bloomIntensity;
115 uint32_t ditherEnable;
116 uint32_t tonemapping;
121 ShaderProgram* fxaaShaderProgram;
122 GraphicsPipeline* fxaaPipeline;
123 Buffer* fxaaUniformBuffer;
125 struct FXAAUniforms {
126 glm::vec2 screenSize;
128 uint32_t ditherEnable;
A buffer into which rendering commands are recorded.
Definition: CommandBuffer.hpp:24
Low level renderer abstracting the underlaying graphics API (OpenGL or Vulkan).
Definition: LowLevelRenderer.hpp:27
Applies post-processing effects to the rendered image.
Definition: PostProcessing.hpp:18
void Configure(const Configuration &configuration, Texture *outputTexture)
Configure the post-processing.
Definition: PostProcessing.cpp:99
PostProcessing(LowLevelRenderer *lowLevelRenderer)
Create new post-processing handler.
Definition: PostProcessing.cpp:22
~PostProcessing()
Destructor.
Definition: PostProcessing.cpp:69
void ApplyPostProcessing(CommandBuffer &commandBuffer, Texture *inputTexture, Texture::Format format)
Apply post-processing effects.
Definition: PostProcessing.cpp:131
Determines how a texture should be sampled.
Definition: Sampler.hpp:6
Compiles and handles a shader. Shaders should be linked together into a ShaderProgram.
Definition: Shader.hpp:8
A texture.
Definition: Texture.hpp:8
Format
The format of the texture.
Definition: Texture.hpp:18
Definition: Editor.hpp:18
Definition: PostProcessing.hpp:33
float threshold
Definition: PostProcessing.hpp:36
float scatter
Definition: PostProcessing.hpp:37
float intensity
Definition: PostProcessing.hpp:35
bool enabled
Definition: PostProcessing.hpp:34
Definition: PostProcessing.hpp:29
bool enabled
Definition: PostProcessing.hpp:30
Definition: PostProcessing.hpp:25
bool enabled
Definition: PostProcessing.hpp:26
Post-processing configuration.
Definition: PostProcessing.hpp:21
struct Video::PostProcessing::Configuration::Bloom bloom
bool tonemapping
Definition: PostProcessing.hpp:22
struct Video::PostProcessing::Configuration::FXAA fxaa
float gamma
Definition: PostProcessing.hpp:23
struct Video::PostProcessing::Configuration::Dither dither