Castor3D 0.15.0
Multiplatform 3D engine
|
#include <GlslPbrLighting.hpp>
Fonctions membres publiques | |
C3D_API | PbrLightingModel (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 |
C3D_API sdw::Vec3 | adjustRefraction (BlendComponents const &components, sdw::Vec3 const &refraction) const |
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 const 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) |
Attributs publics | |
CookTorranceBRDF | m_cookTorrance |
SheenBRDF | m_sheen |
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 |
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) 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 | 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 |
Utils & | m_utils |
Shadow & | m_shadowModel |
Lights & | m_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 |
|
explicit |
|
overridevirtual |
Implémente castor3d::shader::LightingModel.
|
overridevirtual |
Implémente castor3d::shader::LightingModel.
C3D_API sdw::Vec3 castor3d::shader::PbrLightingModel::adjustRefraction | ( | BlendComponents const & | components, |
sdw::Vec3 const & | refraction | ||
) | const |
|
static |
|
overrideprotectedvirtual |
Implémente castor3d::shader::LightingModel.
|
overrideprotectedvirtual |
Implémente castor3d::shader::LightingModel.
|
overrideprotectedvirtual |
Réimplémentée à partir de castor3d::shader::LightingModel.
|
overrideprotectedvirtual |
Implémente castor3d::shader::LightingModel.
|
overrideprotectedvirtual |
Implémente castor3d::shader::LightingModel.
|
overridevirtual |
Implémente castor3d::shader::LightingModel.
|
static |
CookTorranceBRDF castor3d::shader::PbrLightingModel::m_cookTorrance |
SheenBRDF castor3d::shader::PbrLightingModel::m_sheen |