Castor3D  0.11.0
Multiplatform 3D engine
Fonctions membres publiques | Fonctions membres publiques statiques | Attributs publics | Attributs publics statiques | Fonctions membres protégées | Liste de tous les membres
Référence de la classe castor3d::shader::MetallicBrdfLightingModel
Graphe d'héritage de castor3d::shader::MetallicBrdfLightingModel:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::shader::MetallicBrdfLightingModel:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API MetallicBrdfLightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, bool isOpaqueProgram)
 
C3D_API void computeCombined (sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface, OutputComponents &output) const
 
C3D_API void compute (DirectionalLight const &light, sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface, OutputComponents &output) const
 
C3D_API void compute (PointLight const &light, sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface, OutputComponents &output) const
 
C3D_API void compute (SpotLight const &light, sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface, OutputComponents &output) const
 
C3D_API sdw::Vec3 computeCombinedDiffuse (sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface) const
 
C3D_API sdw::Vec3 computeDiffuse (DirectionalLight const &light, sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface) const
 
C3D_API sdw::Vec3 computeDiffuse (PointLight const &light, sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface) const
 
C3D_API sdw::Vec3 computeDiffuse (SpotLight const &light, sdw::Vec3 const &worldEye, sdw::Vec3 const &albedo, sdw::Float const &metallic, sdw::Float const &roughness, sdw::Int const &receivesShadows, Surface surface) const
 
C3D_API void computeMapContributions (PipelineFlags const &flags, sdw::Float const &gamma, TextureConfigurations const &textureConfigs, sdw::Array< sdw::UVec4 > const &textureConfig, sdw::Array< sdw::SampledImage2DRgba32 > const &maps, sdw::Vec3 const &texCoords, sdw::Vec3 &normal, sdw::Vec3 &tangent, sdw::Vec3 &bitangent, sdw::Vec3 &emissive, sdw::Float &opacity, sdw::Float &occlusion, sdw::Float &transmittance, sdw::Vec3 &albedo, sdw::Float &metallic, sdw::Float &roughness, sdw::Vec3 &tangentSpaceViewPosition, sdw::Vec3 &tangentSpaceFragPosition)
 
C3D_API void computeMapVoxelContributions (PipelineFlags const &flags, sdw::Float const &gamma, TextureConfigurations const &textureConfigs, sdw::Array< sdw::UVec4 > const &textureConfig, sdw::Array< sdw::SampledImage2DRgba32 > const &maps, sdw::Vec3 const &texCoords, sdw::Vec3 &emissive, sdw::Float &opacity, sdw::Float &occlusion, sdw::Vec3 &albedo, sdw::Float &metallic, sdw::Float &roughness)
 
- Fonctions membres publiques hérités de castor3d::shader::LightingModel
C3D_API LightingModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions shadowOptions, bool isOpaqueProgram)
 
C3D_API void declareModel (uint32_t &index)
 
C3D_API void declareDiffuseModel (uint32_t &index)
 
C3D_API void declareDirectionalModel (bool lightUbo, uint32_t &index)
 
C3D_API void declarePointModel (bool lightUbo, uint32_t &index)
 
C3D_API void declareSpotModel (bool lightUbo, uint32_t &index)
 
C3D_API DirectionalLight getDirectionalLight (sdw::Int const &index) const
 
C3D_API PointLight getPointLight (sdw::Int const &index) const
 
C3D_API SpotLight getSpotLight (sdw::Int const &index) const
 
Shadow const & getShadowModel () const
 

Fonctions membres publiques statiques

static C3D_API std::shared_ptr< MetallicBrdfLightingModelcreateModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions const &shadows, uint32_t &index, bool isOpaqueProgram)
 
static C3D_API std::shared_ptr< MetallicBrdfLightingModelcreateModel (sdw::ShaderWriter &writer, Utils &utils, LightType light, bool lightUbo, ShadowOptions const &shadows, uint32_t &index)
 
static C3D_API std::shared_ptr< MetallicBrdfLightingModelcreateDiffuseModel (sdw::ShaderWriter &writer, Utils &utils, ShadowOptions const &shadows, uint32_t &index, bool isOpaqueProgram)
 

Attributs publics

CookTorranceBRDF m_cookTorrance
 
sdw::Function< sdw::Void, InDirectionalLight, sdw::InVec3, sdw::InVec3, sdw::InFloat, sdw::InFloat, sdw::InInt, InSurface, OutputComponents & > m_computeDirectional
 
sdw::Function< sdw::Void, InPointLight, sdw::InVec3, sdw::InVec3, sdw::InFloat, sdw::InFloat, sdw::InInt, InSurface, OutputComponents & > m_computePoint
 
sdw::Function< sdw::Void, InSpotLight, sdw::InVec3, sdw::InVec3, sdw::InFloat, sdw::InFloat, sdw::InInt, InSurface, OutputComponents & > m_computeSpot
 
sdw::Function< sdw::Vec3, InDirectionalLight, sdw::InVec3, sdw::InVec3, sdw::InFloat, sdw::InFloat, sdw::InInt, InSurface > m_computeDirectionalDiffuse
 
sdw::Function< sdw::Vec3, InPointLight, sdw::InVec3, sdw::InVec3, sdw::InFloat, sdw::InFloat, sdw::InInt, InSurface > m_computePointDiffuse
 
sdw::Function< sdw::Vec3, InSpotLight, sdw::InVec3, sdw::InVec3, sdw::InFloat, sdw::InFloat, sdw::InInt, InSurface > m_computeSpotDiffuse
 

Attributs publics statiques

static C3D_API const castor::String Name
 
- Attributs publics statiques hérités de castor3d::shader::LightingModel
static C3D_API uint32_t const UboBindingPoint
 

Fonctions membres protégées

void doDeclareModel () override
 
void doDeclareComputeDirectionalLight () override
 
void doDeclareComputePointLight () override
 
void doDeclareComputeSpotLight () override
 
void doDeclareDiffuseModel () override
 
void doDeclareComputeDirectionalLightDiffuse () override
 
void doDeclareComputePointLightDiffuse () override
 
void doDeclareComputeSpotLightDiffuse () override
 
- Fonctions membres protégées hérités de castor3d::shader::LightingModel
C3D_API Light getBaseLight (sdw::Int const &value) const
 
C3D_API void doDeclareLight ()
 
C3D_API void doDeclareDirectionalLight ()
 
C3D_API void doDeclarePointLight ()
 
C3D_API void doDeclareSpotLight ()
 
C3D_API void doDeclareDirectionalLightUbo ()
 
C3D_API void doDeclarePointLightUbo ()
 
C3D_API void doDeclareSpotLightUbo ()
 
C3D_API void doDeclareGetBaseLight ()
 
C3D_API void doDeclareGetDirectionalLight ()
 
C3D_API void doDeclareGetPointLight ()
 
C3D_API void doDeclareGetSpotLight ()
 
C3D_API void doDeclareGetCascadeFactors ()
 

Membres hérités additionnels

- Attributs protégés hérités de castor3d::shader::LightingModel
sdw::ShaderWriter & m_writer
 
Utilsm_utils
 
bool m_isOpaqueProgram
 
std::shared_ptr< Shadowm_shadowModel
 
sdw::Function< sdw::Vec3, sdw::InVec3, sdw::InVec4, sdw::InUInt > m_getCascadeFactors
 
sdw::Function< shader::Light, sdw::InInt > m_getBaseLight
 
sdw::Function< shader::DirectionalLight, sdw::InInt > m_getDirectionalLight
 
sdw::Function< shader::PointLight, sdw::InInt > m_getPointLight
 
sdw::Function< shader::SpotLight, sdw::InInt > m_getSpotLight
 
std::unique_ptr< sdw::Struct > m_lightType
 
std::unique_ptr< sdw::Struct > m_directionalLightType
 
std::unique_ptr< sdw::Struct > m_pointLightType
 
std::unique_ptr< sdw::Struct > m_spotLightType
 

Documentation des constructeurs et destructeur

◆ MetallicBrdfLightingModel()

C3D_API castor3d::shader::MetallicBrdfLightingModel::MetallicBrdfLightingModel ( sdw::ShaderWriter &  writer,
Utils utils,
ShadowOptions  shadowOptions,
bool  isOpaqueProgram 
)

Documentation des fonctions membres

◆ compute() [1/3]

C3D_API void castor3d::shader::MetallicBrdfLightingModel::compute ( DirectionalLight const &  light,
sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface,
OutputComponents output 
) const

◆ compute() [2/3]

C3D_API void castor3d::shader::MetallicBrdfLightingModel::compute ( PointLight const &  light,
sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface,
OutputComponents output 
) const

◆ compute() [3/3]

C3D_API void castor3d::shader::MetallicBrdfLightingModel::compute ( SpotLight const &  light,
sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface,
OutputComponents output 
) const

◆ computeCombined()

C3D_API void castor3d::shader::MetallicBrdfLightingModel::computeCombined ( sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface,
OutputComponents output 
) const

◆ computeCombinedDiffuse()

C3D_API sdw::Vec3 castor3d::shader::MetallicBrdfLightingModel::computeCombinedDiffuse ( sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface 
) const

◆ computeDiffuse() [1/3]

C3D_API sdw::Vec3 castor3d::shader::MetallicBrdfLightingModel::computeDiffuse ( DirectionalLight const &  light,
sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface 
) const

◆ computeDiffuse() [2/3]

C3D_API sdw::Vec3 castor3d::shader::MetallicBrdfLightingModel::computeDiffuse ( PointLight const &  light,
sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface 
) const

◆ computeDiffuse() [3/3]

C3D_API sdw::Vec3 castor3d::shader::MetallicBrdfLightingModel::computeDiffuse ( SpotLight const &  light,
sdw::Vec3 const &  worldEye,
sdw::Vec3 const &  albedo,
sdw::Float const &  metallic,
sdw::Float const &  roughness,
sdw::Int const &  receivesShadows,
Surface  surface 
) const

◆ computeMapContributions()

C3D_API void castor3d::shader::MetallicBrdfLightingModel::computeMapContributions ( PipelineFlags const &  flags,
sdw::Float const &  gamma,
TextureConfigurations const &  textureConfigs,
sdw::Array< sdw::UVec4 > const &  textureConfig,
sdw::Array< sdw::SampledImage2DRgba32 > const &  maps,
sdw::Vec3 const &  texCoords,
sdw::Vec3 &  normal,
sdw::Vec3 &  tangent,
sdw::Vec3 &  bitangent,
sdw::Vec3 &  emissive,
sdw::Float &  opacity,
sdw::Float &  occlusion,
sdw::Float &  transmittance,
sdw::Vec3 &  albedo,
sdw::Float &  metallic,
sdw::Float &  roughness,
sdw::Vec3 &  tangentSpaceViewPosition,
sdw::Vec3 &  tangentSpaceFragPosition 
)

◆ computeMapVoxelContributions()

C3D_API void castor3d::shader::MetallicBrdfLightingModel::computeMapVoxelContributions ( PipelineFlags const &  flags,
sdw::Float const &  gamma,
TextureConfigurations const &  textureConfigs,
sdw::Array< sdw::UVec4 > const &  textureConfig,
sdw::Array< sdw::SampledImage2DRgba32 > const &  maps,
sdw::Vec3 const &  texCoords,
sdw::Vec3 &  emissive,
sdw::Float &  opacity,
sdw::Float &  occlusion,
sdw::Vec3 &  albedo,
sdw::Float &  metallic,
sdw::Float &  roughness 
)

◆ createDiffuseModel()

static C3D_API std::shared_ptr< MetallicBrdfLightingModel > castor3d::shader::MetallicBrdfLightingModel::createDiffuseModel ( sdw::ShaderWriter &  writer,
Utils utils,
ShadowOptions const &  shadows,
uint32_t &  index,
bool  isOpaqueProgram 
)
static

◆ createModel() [1/2]

static C3D_API std::shared_ptr< MetallicBrdfLightingModel > castor3d::shader::MetallicBrdfLightingModel::createModel ( sdw::ShaderWriter &  writer,
Utils utils,
ShadowOptions const &  shadows,
uint32_t &  index,
bool  isOpaqueProgram 
)
static

◆ createModel() [2/2]

static C3D_API std::shared_ptr< MetallicBrdfLightingModel > castor3d::shader::MetallicBrdfLightingModel::createModel ( sdw::ShaderWriter &  writer,
Utils utils,
LightType  light,
bool  lightUbo,
ShadowOptions const &  shadows,
uint32_t &  index 
)
static

◆ doDeclareComputeDirectionalLight()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareComputeDirectionalLight ( )
overrideprotectedvirtual

◆ doDeclareComputeDirectionalLightDiffuse()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareComputeDirectionalLightDiffuse ( )
overrideprotectedvirtual

◆ doDeclareComputePointLight()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareComputePointLight ( )
overrideprotectedvirtual

◆ doDeclareComputePointLightDiffuse()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareComputePointLightDiffuse ( )
overrideprotectedvirtual

◆ doDeclareComputeSpotLight()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareComputeSpotLight ( )
overrideprotectedvirtual

◆ doDeclareComputeSpotLightDiffuse()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareComputeSpotLightDiffuse ( )
overrideprotectedvirtual

◆ doDeclareDiffuseModel()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareDiffuseModel ( )
overrideprotectedvirtual

◆ doDeclareModel()

void castor3d::shader::MetallicBrdfLightingModel::doDeclareModel ( )
overrideprotectedvirtual

Documentation des données membres

◆ m_computeDirectional

sdw::Function< sdw::Void , InDirectionalLight , sdw::InVec3 , sdw::InVec3 , sdw::InFloat , sdw::InFloat , sdw::InInt , InSurface , OutputComponents & > castor3d::shader::MetallicBrdfLightingModel::m_computeDirectional

◆ m_computeDirectionalDiffuse

sdw::Function< sdw::Vec3 , InDirectionalLight , sdw::InVec3 , sdw::InVec3 , sdw::InFloat , sdw::InFloat , sdw::InInt , InSurface > castor3d::shader::MetallicBrdfLightingModel::m_computeDirectionalDiffuse

◆ m_computePoint

sdw::Function< sdw::Void , InPointLight , sdw::InVec3 , sdw::InVec3 , sdw::InFloat , sdw::InFloat , sdw::InInt , InSurface , OutputComponents & > castor3d::shader::MetallicBrdfLightingModel::m_computePoint

◆ m_computePointDiffuse

sdw::Function< sdw::Vec3 , InPointLight , sdw::InVec3 , sdw::InVec3 , sdw::InFloat , sdw::InFloat , sdw::InInt , InSurface > castor3d::shader::MetallicBrdfLightingModel::m_computePointDiffuse

◆ m_computeSpot

sdw::Function< sdw::Void , InSpotLight , sdw::InVec3 , sdw::InVec3 , sdw::InFloat , sdw::InFloat , sdw::InInt , InSurface , OutputComponents & > castor3d::shader::MetallicBrdfLightingModel::m_computeSpot

◆ m_computeSpotDiffuse

sdw::Function< sdw::Vec3 , InSpotLight , sdw::InVec3 , sdw::InVec3 , sdw::InFloat , sdw::InFloat , sdw::InInt , InSurface > castor3d::shader::MetallicBrdfLightingModel::m_computeSpotDiffuse

◆ m_cookTorrance

CookTorranceBRDF castor3d::shader::MetallicBrdfLightingModel::m_cookTorrance

◆ Name

C3D_API const castor::String castor3d::shader::MetallicBrdfLightingModel::Name
static

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