Castor3D 0.17.0
Multiplatform 3D engine
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
castor3d::shader::IblBackgroundModel Class Reference

#include <GlslIblBackground.hpp>

Inheritance diagram for castor3d::shader::IblBackgroundModel:
Inheritance graph
[legend]
Collaboration diagram for castor3d::shader::IblBackgroundModel:
Collaboration graph
[legend]

Public Member Functions

C3D_API IblBackgroundModel (sdw::ShaderWriter &writer, Utils &utils, VkExtent2D targetSize, uint32_t &binding, uint32_t set)
 
sdw::RetVec3 computeDiffuseReflection (sdw::Vec3 const &wsNormal) override
 
sdw::RetVec3 computeSpecularReflection (sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, sdw::Float const &roughness) override
 
sdw::RetVec4 computeSheenReflection (sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, sdw::Float const &NdotV, BlendComponents &components, sdw::CombinedImage2DRgba32 const &brdf) override
 
sdw::RetVec3 computeRefraction (sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, BlendComponents &components) override
 
sdw::RetVec3 computeSpecularRefraction (sdw::Vec3 const &fresnel, sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, sdw::Float const &NdotV, sdw::Float const &roughness, BlendComponents &components, sdw::CombinedImage2DRgba32 const &brdfMap, DebugOutputCategory const &debugOutput) override
 
sdw::RetVec3 computeDiffuse (sdw::Vec3 const &wsDirection, BlendComponents &components) override
 
- Public Member Functions inherited from castor3d::shader::BackgroundModel
C3D_API BackgroundModel (sdw::ShaderWriter &writer, Utils &utils, VkExtent2D targetSize, bool reflectionSupport, bool refractionSupport, bool iblSupport)
 
virtual C3D_API ~BackgroundModel ()=default
 
virtual C3D_API void computeReflection (sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, BlendComponents &components, sdw::Vec3 &reflectedDiffuse, sdw::Vec3 &reflectedSpecular)
 
virtual C3D_API void applyVolume (sdw::Vec2 const fragCoord, sdw::Float const linearDepth, sdw::Vec2 const targetSize, sdw::Vec2 const cameraPlanes, sdw::Vec4 &output)
 
VkExtent2D const & getTargetSize () const noexcept
 
bool hasReflectionSupport () const noexcept
 
bool hasRefractionSupport () const noexcept
 
bool hasIblSupport () const noexcept
 

Static Public Member Functions

static BackgroundModelPtr create (Engine const &engine, sdw::ShaderWriter &writer, Utils &utils, VkExtent2D targetSize, bool needsForeground, uint32_t &binding, uint32_t set)
 
- Static Public Member Functions inherited from castor3d::shader::BackgroundModel
static C3D_API BackgroundModelPtr createModel (Scene const &scene, sdw::ShaderWriter &writer, Utils &utils, VkExtent2D targetSize, bool needsForeground, uint32_t &binding, uint32_t set)
 
static C3D_API sdw::Vec3 getBrdf (sdw::CombinedImage2DRgba32 const &brdfMap, sdw::Float const &NdotV, sdw::Float const &roughness)
 

Static Public Attributes

static castor::String const Name
 

Additional Inherited Members

- Protected Attributes inherited from castor3d::shader::BackgroundModel
sdw::ShaderWriter & m_writer
 
Utilsm_utils
 
VkExtent2D m_targetSize
 
bool m_reflectionSupport {}
 
bool m_refractionSupport {}
 
bool m_iblSupport {}
 

Constructor & Destructor Documentation

◆ IblBackgroundModel()

C3D_API castor3d::shader::IblBackgroundModel::IblBackgroundModel ( sdw::ShaderWriter & writer,
Utils & utils,
VkExtent2D targetSize,
uint32_t & binding,
uint32_t set )

Member Function Documentation

◆ computeDiffuse()

sdw::RetVec3 castor3d::shader::IblBackgroundModel::computeDiffuse ( sdw::Vec3 const & wsDirection,
BlendComponents & components )
overridevirtual

Reimplemented from castor3d::shader::BackgroundModel.

◆ computeDiffuseReflection()

sdw::RetVec3 castor3d::shader::IblBackgroundModel::computeDiffuseReflection ( sdw::Vec3 const & wsNormal)
overridevirtual

Reimplemented from castor3d::shader::BackgroundModel.

◆ computeRefraction()

sdw::RetVec3 castor3d::shader::IblBackgroundModel::computeRefraction ( sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
BlendComponents & components )
overridevirtual

Reimplemented from castor3d::shader::BackgroundModel.

◆ computeSheenReflection()

sdw::RetVec4 castor3d::shader::IblBackgroundModel::computeSheenReflection ( sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
sdw::Float const & NdotV,
BlendComponents & components,
sdw::CombinedImage2DRgba32 const & brdf )
overridevirtual

Reimplemented from castor3d::shader::BackgroundModel.

◆ computeSpecularReflection()

sdw::RetVec3 castor3d::shader::IblBackgroundModel::computeSpecularReflection ( sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
sdw::Float const & roughness )
overridevirtual

Reimplemented from castor3d::shader::BackgroundModel.

◆ computeSpecularRefraction()

sdw::RetVec3 castor3d::shader::IblBackgroundModel::computeSpecularRefraction ( sdw::Vec3 const & fresnel,
sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
sdw::Float const & NdotV,
sdw::Float const & roughness,
BlendComponents & components,
sdw::CombinedImage2DRgba32 const & brdfMap,
DebugOutputCategory const & debugOutput )
overridevirtual

Reimplemented from castor3d::shader::BackgroundModel.

◆ create()

static BackgroundModelPtr castor3d::shader::IblBackgroundModel::create ( Engine const & engine,
sdw::ShaderWriter & writer,
Utils & utils,
VkExtent2D targetSize,
bool needsForeground,
uint32_t & binding,
uint32_t set )
static

Member Data Documentation

◆ Name

castor::String const castor3d::shader::IblBackgroundModel::Name
static

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