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
11 {
12 public:
13 SsaoPass(const bool fixed_size, const uint32_t base_height = 600);
14
15 void init();
16
17 void setGeometryBuffer(std::shared_ptr<oe::render::Framebuffer> geometry_buffer);
18
19 std::shared_ptr<oe::render::Texture> getSsaoTexture();
20
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 framebuffer.h:43
Render manager.
Definition manager.h:22
Definition pipeline.h:131
Definition ssao.h:11
Predefined Pass and helpers for the Pipeline.
Definition blur_manager.h:8