Grindstone Game Engine
v0.2.0
An open source game engine and toolkit.
Toggle main menu visibility
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
8
namespace
Grindstone::GraphicsAPI
{
9
class
DescriptorSetLayout
;
10
class
DescriptorSet
;
11
class
Buffer
;
12
class
Sampler
;
13
}
14
15
namespace
Grindstone::Renderer
{
16
struct
PostProcessSettings
{
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(
35
Grindstone::Renderer::RenderGraphBuilder
& renderGraphBuilder,
36
Grindstone::Renderer::RenderFrameContext
& context
37
)
override
;
38
39
private
:
40
Grindstone::AssetReference<Grindstone::GraphicsPipelineAsset>
tonemapPipelineSet;
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
}
Grindstone::GraphicsAPI::Buffer
Definition
Buffer.hpp:49
Grindstone::GraphicsAPI::DescriptorSetLayout
Definition
DescriptorSetLayout.hpp:14
Grindstone::GraphicsAPI::DescriptorSet
Definition
DescriptorSet.hpp:15
Grindstone::GraphicsAPI::Sampler
Definition
Sampler.hpp:49
Grindstone::Renderer::RenderGraphBuilder
Definition
RenderGraphBuilder.hpp:12
Grindstone::Rendering::RendererFeature
Definition
RendererFeature.hpp:10
Grindstone::GraphicsAPI
Definition
Buffer.hpp:9
Grindstone::Renderer
Definition
AttachmentInfo.hpp:17
Grindstone::AssetReference
Definition
AssetReference.hpp:45
Grindstone::Renderer::PostProcessSettings
Definition
Tonemap.hpp:16
Grindstone::Renderer::RenderFrameContext
Definition
RenderFrameContext.hpp:24
plugins
Grindstone.Renderer.Deferred
include
Features
Tonemap.hpp
Generated by
1.17.0