Castor3D 0.15.0
Multiplatform 3D engine
Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres protégées | Liste de tous les membres
Référence de la classe castor3d::shader::PhongLightingModel

#include <GlslPhongLighting.hpp>

Graphe d'héritage de castor3d::shader::PhongLightingModel:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::shader::PhongLightingModel:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API PhongLightingModel (LightingModelID lightingModelId, sdw::ShaderWriter &writer, Materials const &materials, Utils &utils, BRDFHelpers &brdf, Shadow &shadowModel, Lights &lights, bool enableVolumetric)
 
C3D_API sdw::Float getFinalTransmission (BlendComponents const &components, sdw::Vec3 const &incident) override
 
C3D_API sdw::Vec3 adjustDirectAmbient (BlendComponents const &components, sdw::Vec3 const &directAmbient) const override
 
C3D_API sdw::Vec3 adjustDirectSpecular (BlendComponents const &components, sdw::Vec3 const &directSpecular) const override
 
- Fonctions membres publiques hérités de castor3d::shader::LightingModel
C3D_API LightingModel (LightingModelID lightingModelId, sdw::ShaderWriter &writer, Materials const &materials, Utils &utils, BRDFHelpers &brdf, Shadow &shadowModel, Lights &lights, bool hasIblSupport, bool enableVolumetric, std::string prefix)
 
virtual C3D_API ~LightingModel ()=default
 
LightingModelID getLightingModelId () const
 
bool hasIblSupport () const
 
C3D_API void finish (PassShaders const &passShaders, SurfaceBase const &surface, Utils &utils, sdw::Vec3 const worldEye, BlendComponents &components)
 
C3D_API sdw::Vec3 combine (BlendComponents const &components, sdw::Vec3 const &incident, sdw::Vec3 const &directDiffuse, sdw::Vec3 const &indirectDiffuse, sdw::Vec3 const &directSpecular, sdw::Vec3 const &directScattering, sdw::Vec3 const &directCoatingSpecular, sdw::Vec2 const &directSheen, sdw::Vec3 const &indirectSpecular, sdw::Vec3 const &directAmbient, sdw::Vec3 const &indirectAmbient, sdw::Float const &ambientOcclusion, sdw::Vec3 const &emissive, sdw::Vec3 reflectedDiffuse, sdw::Vec3 reflectedSpecular, sdw::Vec3 refracted, sdw::Vec3 coatReflected, sdw::Vec3 sheenReflected)
 
C3D_API sdw::Vec3 combine (BlendComponents const &components, sdw::Vec3 const &incident, sdw::Vec3 const &directDiffuse, sdw::Vec3 const &indirectDiffuse, sdw::Vec3 const &directSpecular, sdw::Vec3 const &directScattering, sdw::Vec3 const &directCoatingSpecular, sdw::Vec2 const &directSheen, sdw::Vec3 const &indirectSpecular, sdw::Vec3 const &directAmbient, sdw::Vec3 const &indirectAmbient, sdw::Vec3 reflectedDiffuse, sdw::Vec3 reflectedSpecular, sdw::Vec3 refracted, sdw::Vec3 coatReflected, sdw::Vec3 sheenReflected)
 
virtual C3D_API sdw::Float getFinalTransmission (BlendComponents const &components, sdw::Vec3 const &incident)=0
 
virtual C3D_API sdw::Vec3 adjustDirectAmbient (BlendComponents const &components, sdw::Vec3 const &directAmbient) const =0
 
virtual C3D_API sdw::Vec3 adjustDirectSpecular (BlendComponents const &components, sdw::Vec3 const &directSpecular) const =0
 
C3D_API void compute (DirectionalLight const &light, BlendComponents const &components, BackgroundModel &background, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, OutputComponents &output)
 
C3D_API void compute (PointLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, OutputComponents &output)
 
C3D_API void compute (SpotLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows, OutputComponents &output)
 
C3D_API sdw::Vec3 computeDiffuse (DirectionalLight const &light, BlendComponents const &components, BackgroundModel &background, LightSurface const &lightSurface, sdw::UInt const &receivesShadows)
 
C3D_API sdw::Vec3 computeDiffuse (PointLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows)
 
C3D_API sdw::Vec3 computeDiffuse (SpotLight const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::UInt const &receivesShadows)
 

Fonctions membres publiques statiques

static C3D_API castor::String getName ()
 
static C3D_API LightingModelUPtr create (LightingModelID lightingModelId, sdw::ShaderWriter &writer, Materials const &materials, Utils &utils, BRDFHelpers &brdf, Shadow &shadowModel, Lights &lights, bool enableVolumetric)
 

Fonctions membres protégées

C3D_API void doFinish (BlendComponents &components) override
 
C3D_API sdw::Vec3 doComputeDiffuseTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float &isLit, sdw::Vec3 &output) override
 
C3D_API void doComputeSpecularTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float const &isLit, sdw::Vec3 &output) override
 
C3D_API void doComputeCoatingTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float const &isLit, sdw::Vec3 &output) override
 
- Fonctions membres protégées hérités de castor3d::shader::LightingModel
C3D_API void doComputeAttenuation (sdw::Float const attenuation, OutputComponents &output)
 
C3D_API void doApplyShadows (DirectionalLight const &light, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, OutputComponents &output)
 
C3D_API void doApplyShadows (PointLight const &light, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, OutputComponents &output)
 
C3D_API void doApplyShadows (SpotLight const &light, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, OutputComponents &output)
 
C3D_API void doApplyShadowsDiffuse (DirectionalLight const &light, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, sdw::Vec3 &output)
 
C3D_API void doApplyShadowsDiffuse (PointLight const &light, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, sdw::Vec3 &output)
 
C3D_API void doApplyShadowsDiffuse (SpotLight const &light, LightSurface const &lightSurface, sdw::Vec3 const &radiance, sdw::UInt const &receivesShadows, sdw::Vec3 &output)
 
virtual C3D_API void doInitialiseBackground (BackgroundModel &background)
 
virtual C3D_API sdw::Vec3 doComputeRadiance (Light const &light, sdw::Vec3 const &lightDirection) const
 
virtual C3D_API void doComputeSheenTerm (sdw::Vec3 const &radiance, sdw::Float const &intensity, BlendComponents const &components, LightSurface const &lightSurface, sdw::Float const &isLit, sdw::Vec2 &output)
 
virtual C3D_API void doComputeScatteringTerm (sdw::Vec3 const &radiance, Light const &light, BlendComponents const &components, LightSurface const &lightSurface, sdw::Vec3 &output)
 
virtual C3D_API sdw::Float doGetNdotL (LightSurface const &lightSurface, BlendComponents const &components)
 
virtual C3D_API sdw::Float doGetNdotH (LightSurface const &lightSurface, BlendComponents const &components)
 

Membres hérités additionnels

- Attributs protégés hérités de castor3d::shader::LightingModel
LightingModelID m_lightingModelId
 
sdw::ShaderWriter & m_writer
 
Materials const & m_materials
 
Utilsm_utils
 
Shadowm_shadowModel
 
Lightsm_lights
 
bool m_hasIblSupport
 
bool m_enableVolumetric
 
std::string m_prefix
 
std::unique_ptr< sdw::Struct > m_type
 
std::unique_ptr< sdw::UInt > m_directionalCascadeIndex
 
std::unique_ptr< sdw::UInt > m_directionalCascadeCount
 
std::unique_ptr< sdw::Mat4 > m_directionalTransform
 
sdw::Function< sdw::Void, PDirectionalLight, InBlendComponents, InLightSurface, sdw::InUInt, OutputComponents & > m_computeDirectional
 
sdw::Function< sdw::Void, PPointLight, InBlendComponents, InLightSurface, sdw::InUInt, OutputComponents & > m_computePoint
 
sdw::Function< sdw::Void, PSpotLight, InBlendComponents, InLightSurface, sdw::InUInt, OutputComponents & > m_computeSpot
 
sdw::Function< sdw::Vec3, InOutDirectionalLight, InBlendComponents, InLightSurface, sdw::InUInt > m_computeDirectionalDiffuse
 
sdw::Function< sdw::Vec3, InOutPointLight, InBlendComponents, InLightSurface, sdw::InUInt > m_computePointDiffuse
 
sdw::Function< sdw::Vec3, InOutSpotLight, InBlendComponents, InLightSurface, sdw::InUInt > m_computeSpotDiffuse
 

Documentation des constructeurs et destructeur

◆ PhongLightingModel()

C3D_API castor3d::shader::PhongLightingModel::PhongLightingModel ( LightingModelID  lightingModelId,
sdw::ShaderWriter &  writer,
Materials const &  materials,
Utils utils,
BRDFHelpers brdf,
Shadow shadowModel,
Lights lights,
bool  enableVolumetric 
)

Documentation des fonctions membres

◆ adjustDirectAmbient()

C3D_API sdw::Vec3 castor3d::shader::PhongLightingModel::adjustDirectAmbient ( BlendComponents const &  components,
sdw::Vec3 const &  directAmbient 
) const
overridevirtual

◆ adjustDirectSpecular()

C3D_API sdw::Vec3 castor3d::shader::PhongLightingModel::adjustDirectSpecular ( BlendComponents const &  components,
sdw::Vec3 const &  directSpecular 
) const
overridevirtual

◆ create()

static C3D_API LightingModelUPtr castor3d::shader::PhongLightingModel::create ( LightingModelID  lightingModelId,
sdw::ShaderWriter &  writer,
Materials const &  materials,
Utils utils,
BRDFHelpers brdf,
Shadow shadowModel,
Lights lights,
bool  enableVolumetric 
)
static

◆ doComputeCoatingTerm()

C3D_API void castor3d::shader::PhongLightingModel::doComputeCoatingTerm ( sdw::Vec3 const &  radiance,
sdw::Float const &  intensity,
BlendComponents const &  components,
LightSurface const &  lightSurface,
sdw::Float const &  isLit,
sdw::Vec3 &  output 
)
overrideprotectedvirtual

◆ doComputeDiffuseTerm()

C3D_API sdw::Vec3 castor3d::shader::PhongLightingModel::doComputeDiffuseTerm ( sdw::Vec3 const &  radiance,
sdw::Float const &  intensity,
BlendComponents const &  components,
LightSurface const &  lightSurface,
sdw::Float &  isLit,
sdw::Vec3 &  output 
)
overrideprotectedvirtual

◆ doComputeSpecularTerm()

C3D_API void castor3d::shader::PhongLightingModel::doComputeSpecularTerm ( sdw::Vec3 const &  radiance,
sdw::Float const &  intensity,
BlendComponents const &  components,
LightSurface const &  lightSurface,
sdw::Float const &  isLit,
sdw::Vec3 &  output 
)
overrideprotectedvirtual

◆ doFinish()

C3D_API void castor3d::shader::PhongLightingModel::doFinish ( BlendComponents components)
overrideprotectedvirtual

◆ getFinalTransmission()

C3D_API sdw::Float castor3d::shader::PhongLightingModel::getFinalTransmission ( BlendComponents const &  components,
sdw::Vec3 const &  incident 
)
overridevirtual

◆ getName()

static C3D_API castor::String castor3d::shader::PhongLightingModel::getName ( )
static

La documentation de cette classe a été générée à partir du fichier suivant :