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::component
7{
8 class Lighting;
9}
10
12{
14 {
15 public:
16 LightingPass(const component::Lighting* light_manager);
17
18 void init();
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
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 component::Lighting* _light_manager;
48 };
49}
50
51#endif
Lighting component.
Definition lighting.h:39
Definition framebuffer.h:43
Render manager.
Definition manager.h:22
Definition pipeline.h:131
Definition lighting.h:14
std::shared_ptr< oe::render::Framebuffer > getFramebuffer()
Scene / node components (camera, lighting, ...)
Definition pipeline.h:9
Predefined Pass and helpers for the Pipeline.
Definition blur_manager.h:8