Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ScreenSpaceAmbientOcclusion.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
9 class Buffer;
10 class Image;
11 class Sampler;
12 class DescriptorSet;
14}
15namespace Grindstone::Renderer {
16 class ScreenSpaceAmbientOcclusion : public Rendering::RendererFeature {
17 public:
18 ScreenSpaceAmbientOcclusion() : Rendering::RendererFeature("ScreenSpaceAmbientOcclusion", Rendering::DeferredRenderGraphOrderEvent::ScreenSpaceAmbientOcclusion) {}
19 static const char* GetStaticFeatureName() { return "ScreenSpaceAmbientOcclusion"; }
20 virtual void Initialize() override;
21 virtual void Bind(
24 ) override;
25
26 private:
28 void CreateSsaoKernelAndNoise();
29
30 Grindstone::GraphicsAPI::Buffer* ssaoUniformBuffer = nullptr;
31 Grindstone::GraphicsAPI::Image* ssaoNoiseTexture = nullptr;
32 Grindstone::GraphicsAPI::Sampler* screenSampler = nullptr;
33 Grindstone::GraphicsAPI::Sampler* ssaoNoiseSampler = nullptr;
34 Grindstone::GraphicsAPI::DescriptorSetLayout* ssaoInputDescriptorSetLayout = nullptr;
35 Grindstone::GraphicsAPI::DescriptorSet* ssaoInputDescriptorSet = nullptr;
36 };
37}
Definition Buffer.hpp:49
Definition DescriptorSetLayout.hpp:14
Definition DescriptorSet.hpp:15
Definition Image.hpp:49
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