Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
lighting.h
1#ifndef OE_RENDER_PIPELINE_LIGHTING
2#define OE_RENDER_PIPELINE_LIGHTING
3
4#include "../pipeline.h"
5
6namespace oe::render
7{
8 class Lighting;
9}
10
12{
14 {
15 public:
16 LightingPass(const render::Lighting* light_manager);
17
18 void init() override;
19
20 void setGeometryBuffer(std::shared_ptr<oe::render::Framebuffer> geometry_buffer);
21
22 void setReflectionsBuffer(std::shared_ptr<oe::render::Framebuffer> reflections_buffer);
23
24 oe::render::PipelineOutput handle(const oe::render::PipelineInput&& input) override;
25
29 std::shared_ptr<oe::render::Framebuffer> getFramebuffer();
30
31 private:
32 std::shared_ptr<oe::render::Framebuffer> _framebuffer;
33
34 std::shared_ptr<oe::render::Shader> _shader;
35
36 std::shared_ptr<oe::render::Texture> _albedo_texture;
37 std::shared_ptr<oe::render::Texture> _emissive_texture;
38 std::shared_ptr<oe::render::Texture> _rou_met_ao_texture;
39 std::shared_ptr<oe::render::Texture> _normal_texture;
40 std::shared_ptr<oe::render::Texture> _depth_texture;
41
42 std::shared_ptr<oe::render::Texture> _irradiance_texture;
43 std::shared_ptr<oe::render::Texture> _specular_texture;
44
45 std::shared_ptr<oe::render::Framebuffer> _geometry_buffer;
46
47 const render::Lighting* _light_manager;
48 };
49}
50
51#endif
Definition framebuffer.h:53
Lighting manager (rendering)
Definition lighting.h:34
Definition pipeline.h:140
Definition lighting.h:14
std::shared_ptr< oe::render::Framebuffer > getFramebuffer()
Predefined Pass and helpers for the Pipeline.
Definition blur_manager.h:8
Render related abstractions (Shader, Framebuffer, Cubemaps, Textures)
Definition opengl.h:10
Definition pipeline.h:15