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 lookup texture.
 
std::pair< std::shared_ptr< Texture >, std::shared_ptr< Texture > > getLTCTextures () const
 Returns lookup textures needed to store Linearly Transformed Cosines values to make area lights.
 
std::shared_ptr< CubemapgenerateIrradianceCubemap (Cubemap *source)
 Generate irradiance cubemap from a source cubemap irradiance cubemap simulate the diffuse part / ambient lighting of the scene.
 
std::shared_ptr< CubemapgenerateSpecularCubemap (Cubemap *source, const uint32_t size=256)
 Generate specular cubemap from a cubemap.
 

Detailed Description

Physically Based Rendering.

Todo:
Lights (point, area) tutorial

Member Function Documentation

◆ generateIrradianceCubemap()

std::shared_ptr< Cubemap > oe::render::Pbr::generateIrradianceCubemap ( 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 ( Cubemap source,
const uint32_t  size = 256 
)

Generate specular cubemap from a cubemap.

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

Parameters
sourceSource cubemap
sizeSize of the final cubemap (higher values gives better reflections quality, but slower to compute)
Returns
Specular cubemap

◆ getBRDFLut()

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

Returns the BRDF integration lookup texture.

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

Returns
Precomputed BRDF LUT

◆ getLTCTextures()

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

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

Returns
First LUT 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: