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

#include <GlslBackground.hpp>

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

Public Member Functions

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 sdw::RetVec3 computeDiffuseReflection (sdw::Vec3 const &wsNormal)
 
virtual C3D_API sdw::RetVec3 computeSpecularReflection (sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, sdw::Float const &roughness)
 
virtual C3D_API 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)
 
virtual C3D_API sdw::RetVec3 computeRefraction (sdw::Vec3 const &wsNormal, sdw::Vec3 const &wsPosition, sdw::Vec3 const &V, BlendComponents &components)
 
virtual C3D_API 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 &brdf, DebugOutputCategory const &debugOutput)
 
virtual C3D_API sdw::RetVec3 computeDiffuse (sdw::Vec3 const &wsDirection, BlendComponents &components)
 
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 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)
 

Protected Attributes

sdw::ShaderWriter & m_writer
 
Utilsm_utils
 
VkExtent2D m_targetSize
 
bool m_reflectionSupport {}
 
bool m_refractionSupport {}
 
bool m_iblSupport {}
 

Constructor & Destructor Documentation

◆ BackgroundModel()

C3D_API castor3d::shader::BackgroundModel::BackgroundModel ( sdw::ShaderWriter & writer,
Utils & utils,
VkExtent2D targetSize,
bool reflectionSupport,
bool refractionSupport,
bool iblSupport )

◆ ~BackgroundModel()

virtual C3D_API castor3d::shader::BackgroundModel::~BackgroundModel ( )
virtualdefault

Member Function Documentation

◆ applyVolume()

virtual C3D_API void castor3d::shader::BackgroundModel::applyVolume ( sdw::Vec2 const fragCoord,
sdw::Float const linearDepth,
sdw::Vec2 const targetSize,
sdw::Vec2 const cameraPlanes,
sdw::Vec4 & output )
virtual

◆ computeDiffuse()

virtual C3D_API sdw::RetVec3 castor3d::shader::BackgroundModel::computeDiffuse ( sdw::Vec3 const & wsDirection,
BlendComponents & components )
virtual

◆ computeDiffuseReflection()

virtual C3D_API sdw::RetVec3 castor3d::shader::BackgroundModel::computeDiffuseReflection ( sdw::Vec3 const & wsNormal)
virtual

◆ computeReflection()

virtual C3D_API void castor3d::shader::BackgroundModel::computeReflection ( sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
BlendComponents & components,
sdw::Vec3 & reflectedDiffuse,
sdw::Vec3 & reflectedSpecular )
virtual

◆ computeRefraction()

virtual C3D_API sdw::RetVec3 castor3d::shader::BackgroundModel::computeRefraction ( sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
BlendComponents & components )
virtual

◆ computeSheenReflection()

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

◆ computeSpecularReflection()

virtual C3D_API sdw::RetVec3 castor3d::shader::BackgroundModel::computeSpecularReflection ( sdw::Vec3 const & wsNormal,
sdw::Vec3 const & wsPosition,
sdw::Vec3 const & V,
sdw::Float const & roughness )
virtual

◆ computeSpecularRefraction()

virtual C3D_API sdw::RetVec3 castor3d::shader::BackgroundModel::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 & brdf,
DebugOutputCategory const & debugOutput )
virtual

◆ createModel()

static C3D_API BackgroundModelPtr castor3d::shader::BackgroundModel::createModel ( Scene const & scene,
sdw::ShaderWriter & writer,
Utils & utils,
VkExtent2D targetSize,
bool needsForeground,
uint32_t & binding,
uint32_t set )
static

◆ getBrdf()

static C3D_API sdw::Vec3 castor3d::shader::BackgroundModel::getBrdf ( sdw::CombinedImage2DRgba32 const & brdfMap,
sdw::Float const & NdotV,
sdw::Float const & roughness )
static

◆ getTargetSize()

VkExtent2D const & castor3d::shader::BackgroundModel::getTargetSize ( ) const
inlinenoexcept

References m_targetSize.

◆ hasIblSupport()

bool castor3d::shader::BackgroundModel::hasIblSupport ( ) const
inlinenoexcept

References m_iblSupport.

◆ hasReflectionSupport()

bool castor3d::shader::BackgroundModel::hasReflectionSupport ( ) const
inlinenoexcept

References m_reflectionSupport.

◆ hasRefractionSupport()

bool castor3d::shader::BackgroundModel::hasRefractionSupport ( ) const
inlinenoexcept

References m_refractionSupport.

Member Data Documentation

◆ m_iblSupport

bool castor3d::shader::BackgroundModel::m_iblSupport {}
protected

Referenced by hasIblSupport().

◆ m_reflectionSupport

bool castor3d::shader::BackgroundModel::m_reflectionSupport {}
protected

Referenced by hasReflectionSupport().

◆ m_refractionSupport

bool castor3d::shader::BackgroundModel::m_refractionSupport {}
protected

Referenced by hasRefractionSupport().

◆ m_targetSize

VkExtent2D castor3d::shader::BackgroundModel::m_targetSize
protected

Referenced by getTargetSize().

◆ m_utils

Utils& castor3d::shader::BackgroundModel::m_utils
protected

◆ m_writer

sdw::ShaderWriter& castor3d::shader::BackgroundModel::m_writer
protected

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