Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
pbr.h
1#ifndef OE_RENDER_PBR
2#define OE_RENDER_PBR
3
4#include "texture_manager.h"
5
6namespace oe::render
7{
13 class Pbr
14 {
15 public:
23 std::shared_ptr<Texture> getBRDFLut() const;
24
32 std::pair<std::shared_ptr<Texture>, std::shared_ptr<Texture>> getLTCTextures() const;
33
41 std::shared_ptr<Cubemap> generateIrradianceCubemap(std::shared_ptr<Cubemap> source);
42
51 std::shared_ptr<Cubemap> generateSpecularCubemap(std::shared_ptr<Cubemap> source);
52
53 private:
54 mutable std::pair<std::shared_ptr<Texture>, std::shared_ptr<Texture>> _ltc_textures;
55 mutable std::shared_ptr<Texture> _brdf_texture;
56 };
57}
58#endif
Physically Based Rendering.
Definition pbr.h:14
std::shared_ptr< Cubemap > generateSpecularCubemap(std::shared_ptr< Cubemap > source)
Generate specular cubemap from a cubemap.
std::shared_ptr< Texture > getBRDFLut() const
Returns the BRDF integration texture.
std::shared_ptr< Cubemap > generateIrradianceCubemap(std::shared_ptr< Cubemap > source)
Generate irradiance cubemap from a source cubemap irradiance cubemap simulate the diffuse part / ambi...
std::pair< std::shared_ptr< Texture >, std::shared_ptr< Texture > > getLTCTextures() const
Returns textures needed to store Linearly Transformed Cosines values to make area lights.
Render related abstractions (Shader, Framebuffer, Cubemaps, Textures)
Definition opengl.h:10