Oxygen Engine
Modern C++ 3D Engine using OpenGL
Loading...
Searching...
No Matches
oe::render::Pbr Class Reference

Physically Based Rendering. More...

#include <OxygenEngine/render/pbr.h>

Public Member Functions

std::shared_ptr< TexturegetBRDFLut () const
 Returns the BRDF integration texture.
 
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.
 
std::shared_ptr< CubemapgenerateIrradianceCubemap (std::shared_ptr< Cubemap > source)
 Generate irradiance cubemap from a source cubemap irradiance cubemap simulate the diffuse part / ambient lighting of the scene.
 
std::shared_ptr< CubemapgenerateSpecularCubemap (std::shared_ptr< Cubemap > source)
 Generate specular cubemap from a cubemap.
 

Detailed Description

Physically Based Rendering.

Member Function Documentation

◆ generateIrradianceCubemap()

std::shared_ptr< Cubemap > oe::render::Pbr::generateIrradianceCubemap ( std::shared_ptr< Cubemap source)

Generate irradiance cubemap from a source cubemap irradiance cubemap simulate the diffuse part / ambient lighting of the scene.

Parameters
sourceSource cubemap
Returns
Irradiance cubemap

◆ generateSpecularCubemap()

std::shared_ptr< Cubemap > oe::render::Pbr::generateSpecularCubemap ( std::shared_ptr< Cubemap source)

Generate specular cubemap from a cubemap.

Specular cubemap simulates realistic reflections by storing varying roughness levels in mipmaps

Parameters
sourceSource cubemap
Returns
Specular cubemap

◆ getBRDFLut()

std::shared_ptr< Texture > oe::render::Pbr::getBRDFLut ( ) const

Returns the BRDF integration texture.

This texture stores the BRDF values {Red=scale, Green=bias} according to {X=angle between light and normal, Y=roughness}

Returns
Precomputed BRDF texture

◆ getLTCTextures()

std::pair< std::shared_ptr< Texture >, std::shared_ptr< Texture > > oe::render::Pbr::getLTCTextures ( ) const

Returns textures needed to store Linearly Transformed Cosines values to make area lights.

Returns
First texture contains LTC matrix elements and second contains GGX/fresnel multipliers
See also
The original Pa­per on Eric Heitz’s Re­search Page for a de­tailed ex­plan­a­tion about LTC.

The documentation for this class was generated from the following file: