Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
ssao.h
1#ifndef OE_RENDER_PIPELINE_SSAO
2#define OE_RENDER_PIPELINE_SSAO
3
4#include "../pipeline.h"
5
7{
8 class BlurManager;
9
10 class SsaoPass : public oe::render::Pass
11 {
12 public:
13 SsaoPass(const bool fixed_size, const uint32_t base_height = 600);
14
15 void init() override;
16
17 void setGeometryBuffer(std::shared_ptr<oe::render::Framebuffer> geometry_buffer);
18
19 std::shared_ptr<oe::render::Texture> getSsaoTexture();
20
21 oe::render::PipelineOutput handle(const oe::render::PipelineInput&& input) override;
22
23 protected:
24 const bool _fixed_size = false;
25 const uint32_t _base_height = 600;
26
27 std::shared_ptr<oe::render::Framebuffer> _framebuffer;
28 std::shared_ptr<oe::render::Shader> _shader;
29
30 std::shared_ptr<oe::render::Texture> _normal_texture;
31 std::shared_ptr<oe::render::Texture> _depth_texture;
32
33 std::shared_ptr<oe::render::Texture> _noise;
34
35 std::shared_ptr<BlurManager> _blur_manager;
36
37 std::vector<glm::vec3> _kernel;
38
39 glm::vec2 _ssao_dimensions;
40 };
41}
42
43#endif
Definition pipeline.h:140
Helper to blur pipeline passes.
Definition blur_manager.h:15
Predefined Pass and helpers for the Pipeline.
Definition blur_manager.h:8
Definition pipeline.h:15