Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
Tonemap.hpp
1#pragma once
2
3#include <Common/Rendering/RendererFeature.hpp>
4#include <Common/Rendering/RenderGraphBuilder.hpp>
5#include <EngineCore/Assets/AssetReference.hpp>
6#include <EngineCore/Assets/PipelineSet/GraphicsPipelineAsset.hpp>
7
10 class DescriptorSet;
11 class Buffer;
12 class Sampler;
13}
14
15namespace Grindstone::Renderer {
17 glm::vec4 vignetteColor = glm::vec4(0.0f, 0.0f, 0.0f, 1.0f);
18 float vignetteRadius = 0.75f;
19 float vignetteSoftness = 0.8f;
20 float grainAmount = 0.0007f;
21 float grainPixelSize = 1.0f;
22 glm::vec2 chromaticDistortionRedOffset = glm::vec2(0.00045f, 0.00045f);
23 glm::vec2 chromaticDistortionGreenOffset = glm::vec2(0.0003f, 0.0003f);
24 glm::vec2 chromaticDistortionBlueOffset = glm::vec2(-0.0003f, -0.0003f);
25 float paniniDistortionStrength = 0.0f;
26 bool isAnimated = true;
27 };
28
29 class Tonemap : public Rendering::RendererFeature {
30 public:
31 Tonemap() : Rendering::RendererFeature("Tonemap", Rendering::DeferredRenderGraphOrderEvent::Tonemap) {}
32 static const char* GetStaticFeatureName() { return "Tonemap"; }
33 virtual void Initialize() override;
34 virtual void Bind(
37 ) override;
38
39 private:
41 std::array<Grindstone::GraphicsAPI::DescriptorSet*, 3> tonemapSettingsDescriptorSet {};
42 std::array<Grindstone::GraphicsAPI::Buffer*, 3> tonemapSettingsUniformBuffer {};
43 GraphicsAPI::DescriptorSetLayout* descriptorSetLayout = nullptr;
44 GraphicsAPI::Sampler* screenSampler = nullptr;
45 };
46}
Definition Buffer.hpp:49
Definition DescriptorSetLayout.hpp:14
Definition DescriptorSet.hpp:15
Definition Sampler.hpp:49
Definition RenderGraphBuilder.hpp:12
Definition RendererFeature.hpp:10
Definition Buffer.hpp:9
Definition AttachmentInfo.hpp:17
Definition AssetReference.hpp:45
Definition RenderFrameContext.hpp:24