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

#include <PassComponent.hpp>

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

Fonctions membres publiques

 PassComponentsShader (PassComponentPlugin const &plugin)
 
virtual C3D_API void fillComponents (sdw::type::BaseStruct &components, Materials const &materials, sdw::StructInstance const *surface) const
 Remplit la structure shader de composants avec les membres fournis par ce composant.
 
virtual C3D_API void fillComponentsInits (sdw::type::BaseStruct const &components, Materials const &materials, Material const *material, sdw::StructInstance const *surface, sdw::Vec4 const *clrCot, sdw::expr::ExprList &inits) const
 Remplit les initialiseurs de la structure shader de composants avec les ceux fournis par ce composant.
 
virtual C3D_API void computeTexcoord (PipelineFlags const &flags, TextureConfigData const &config, sdw::U32Vec3 const &imgCompConfig, sdw::CombinedImage2DRgba32 const &map, sdw::Vec3 &texCoords, sdw::Vec2 &texCoord, BlendComponents &components) const
 Utilise ce composant pour altérer les coordonnées de texture.
 
virtual C3D_API void computeTexcoord (PipelineFlags const &flags, TextureConfigData const &config, sdw::U32Vec3 const &imgCompConfig, sdw::CombinedImage2DRgba32 const &map, DerivTex &texCoords, DerivTex &texCoord, BlendComponents &components) const
 Utilise ce composant pour altérer les coordonnées de texture.
 
virtual C3D_API void applyComponents (TextureCombine const &combine, PipelineFlags const *flags, shader::TextureConfigData const &config, sdw::U32Vec3 const &imgCompConfig, sdw::Vec4 const &sampled, BlendComponents &components) const
 Remplit les valeurs de ce composant avec des données récupérées depuis une texture.
 
virtual C3D_API void blendComponents (shader::Materials const &materials, sdw::Float const &passMultiplier, BlendComponents &res, BlendComponents const &src) const
 Utilisé pour mixer les composant quand plusieurs passes sont fusionnées ensemble.
 
virtual C3D_API void updateComponent (TextureCombine const &combine, shader::BlendComponents &components) const
 
virtual C3D_API sdw::Vec4 sampleMap (sdw::CombinedImage2DRgba32 const &map, sdw::Vec3 const &texCoords, shader::BlendComponents const &components) const
 
virtual C3D_API sdw::Vec4 sampleMap (sdw::CombinedImage2DRgba32 const &map, shader::DerivTex const &texCoords, shader::BlendComponents const &components) const
 
virtual C3D_API bool isMapSampling (PipelineFlags const &flags) const
 

Getters.

C3D_API PassComponentID getId () const
 
PassComponentPlugin const & getPlugin () const
 
- Fonctions membres publiques hérités de castor3d::shader::PassShader
 PassShader ()=default
 
 PassShader (PassShader const &)=delete
 
PassShaderoperator= (PassShader const &)=delete
 
C3D_API PassShader (PassShader &&)=default
 
C3D_API PassShaderoperator= (PassShader &&)=default
 
virtual C3D_API ~PassShader ()=default
 
virtual C3D_API void updateOutputs (sdw::StructInstance const &components, sdw::StructInstance const &surface, sdw::Vec4 &spcRgh, sdw::Vec4 &colMtl, sdw::Vec4 &sheen) const
 Met à jour les valeurs nécessaires à l'éclairage (specular, metalness, roughness et colour).
 

Fonctions membres protégées

C3D_API void applyFloatComponent (std::string const &name, PassComponentTextureFlag flag, shader::TextureConfigData const &config, sdw::U32Vec3 const &imgCompConfig, sdw::Vec4 const &sampled, shader::BlendComponents &components) const
 
C3D_API void applyVec3Component (std::string const &name, PassComponentTextureFlag flag, shader::TextureConfigData const &config, sdw::U32Vec3 const &imgCompConfig, sdw::Vec4 const &sampled, shader::BlendComponents &components) const
 

Documentation des constructeurs et destructeur

◆ PassComponentsShader()

castor3d::shader::PassComponentsShader::PassComponentsShader ( PassComponentPlugin const &  plugin)
inlineexplicit

Documentation des fonctions membres

◆ applyComponents()

virtual C3D_API void castor3d::shader::PassComponentsShader::applyComponents ( TextureCombine const &  combine,
PipelineFlags const *  flags,
shader::TextureConfigData const &  config,
sdw::U32Vec3 const &  imgCompConfig,
sdw::Vec4 const &  sampled,
BlendComponents components 
) const
inlinevirtual

Remplit les valeurs de ce composant avec des données récupérées depuis une texture.

Paramètres
[in]combineUtilisé pour vérifier si les textures du composant sont activées.
[in]flagsUtilisé pour vérifier si la passe de rendu est configurée pour que le composant soit utilisable.
[in]configUtilisé pour dire si la texture a la configuration pour ce composant.
[in]imgCompConfigLes composantes de l'image à utiliser.
[in]sampledLes données récupérées depuis la texture.
[in]componentsContient les membres du composant.

Réimplémentée dans castor3d::AttenuationMapComponent::ComponentsShader, castor3d::ClearcoatMapComponent::ComponentsShader, castor3d::ClearcoatNormalMapComponent::ComponentsShader, castor3d::ClearcoatRoughnessMapComponent::ComponentsShader, castor3d::ColourMapComponent::ComponentsShader, castor3d::EmissiveMapComponent::ComponentsShader, castor3d::GlossinessMapComponent::ComponentsShader, castor3d::IridescenceMapComponent::ComponentsShader, castor3d::IridescenceThicknessMapComponent::ComponentsShader, castor3d::MetalnessMapComponent::ComponentsShader, castor3d::NormalMapComponent::ComponentsShader, castor3d::OcclusionMapComponent::ComponentsShader, castor3d::OpacityMapComponent::ComponentsShader, castor3d::RoughnessMapComponent::ComponentsShader, castor3d::SheenMapComponent::ComponentsShader, castor3d::SheenRoughnessMapComponent::ComponentsShader, castor3d::SpecularFactorMapComponent::ComponentsShader, castor3d::SpecularMapComponent::ComponentsShader, castor3d::TransmissionMapComponent::ComponentsShader, et castor3d::TransmittanceMapComponent::ComponentsShader.

◆ applyFloatComponent()

C3D_API void castor3d::shader::PassComponentsShader::applyFloatComponent ( std::string const &  name,
PassComponentTextureFlag  flag,
shader::TextureConfigData const &  config,
sdw::U32Vec3 const &  imgCompConfig,
sdw::Vec4 const &  sampled,
shader::BlendComponents components 
) const
protected

◆ applyVec3Component()

C3D_API void castor3d::shader::PassComponentsShader::applyVec3Component ( std::string const &  name,
PassComponentTextureFlag  flag,
shader::TextureConfigData const &  config,
sdw::U32Vec3 const &  imgCompConfig,
sdw::Vec4 const &  sampled,
shader::BlendComponents components 
) const
protected

◆ blendComponents()

virtual C3D_API void castor3d::shader::PassComponentsShader::blendComponents ( shader::Materials const &  materials,
sdw::Float const &  passMultiplier,
BlendComponents res,
BlendComponents const &  src 
) const
inlinevirtual

◆ computeTexcoord() [1/2]

virtual C3D_API void castor3d::shader::PassComponentsShader::computeTexcoord ( PipelineFlags const &  flags,
TextureConfigData const &  config,
sdw::U32Vec3 const &  imgCompConfig,
sdw::CombinedImage2DRgba32 const &  map,
DerivTex texCoords,
DerivTex texCoord,
BlendComponents components 
) const
inlinevirtual

Utilise ce composant pour altérer les coordonnées de texture.

Paramètres
[in]flagsUtilisé pour vérifier si la passe de rendu est configurée pour que le composant soit utilisable.
[in]configUtilisé pour dire si la texture a la configuration pour ce composant.
[in]imgCompConfigLes composantes de l'image à utiliser.
[in]mapLa texture à utiliser.
[in]texCoordsLes coordonnées de texture 3D.
[in]texCoordLes coordonnées de texture 2D.
[in]componentsContient les membres du composant.

Réimplémentée dans castor3d::HeightMapComponent::ComponentsShader.

◆ computeTexcoord() [2/2]

virtual C3D_API void castor3d::shader::PassComponentsShader::computeTexcoord ( PipelineFlags const &  flags,
TextureConfigData const &  config,
sdw::U32Vec3 const &  imgCompConfig,
sdw::CombinedImage2DRgba32 const &  map,
sdw::Vec3 &  texCoords,
sdw::Vec2 &  texCoord,
BlendComponents components 
) const
inlinevirtual

Utilise ce composant pour altérer les coordonnées de texture.

Paramètres
[in]flagsUtilisé pour vérifier si la passe de rendu est configurée pour que le composant soit utilisable.
[in]configUtilisé pour dire si la texture a la configuration pour ce composant.
[in]imgCompConfigLes composantes de l'image à utiliser.
[in]mapLa texture à utiliser.
[in]texCoordsLes coordonnées de texture 3D.
[in]texCoordLes coordonnées de texture 2D.
[in]componentsContient les membres du composant.

Réimplémentée dans castor3d::HeightMapComponent::ComponentsShader.

◆ fillComponents()

virtual C3D_API void castor3d::shader::PassComponentsShader::fillComponents ( sdw::type::BaseStruct &  components,
Materials const &  materials,
sdw::StructInstance const *  surface 
) const
inlinevirtual

◆ fillComponentsInits()

virtual C3D_API void castor3d::shader::PassComponentsShader::fillComponentsInits ( sdw::type::BaseStruct const &  components,
Materials const &  materials,
Material const *  material,
sdw::StructInstance const *  surface,
sdw::Vec4 const *  clrCot,
sdw::expr::ExprList &  inits 
) const
inlinevirtual

Remplit les initialiseurs de la structure shader de composants avec les ceux fournis par ce composant.

Remarques
Le nombre et l'ordre des initialiseurs doit correspondre à celui défini par fillComponent.
Paramètres
[in]componentsReçoit les membres de la structure.
[in]materialsUtilisé pour vérifier si la passe de rendu courante a besoin de ce composant.
[in]materialUtilisé pour récupérer les données pour ce composant.
[in]surfaceUtilisé pour récupérer les données pour ce composant.
[in]clrCotUtilisé pour récupérer les données pour ce composant.
[in,out]initsReçoit les initialiseurs

Réimplémentée dans castor3d::FractalMappingComponent::ComponentsShader, castor3d::NormalComponent::ComponentsShader, castor3d::TexturesComponent::ComponentsShader, castor3d::AmbientComponent::ComponentsShader, castor3d::AttenuationComponent::ComponentsShader, castor3d::ClearcoatComponent::ComponentsShader, castor3d::EmissiveComponent::ComponentsShader, castor3d::IridescenceComponent::ComponentsShader, castor3d::MetalnessComponent::ComponentsShader, castor3d::RoughnessComponent::ComponentsShader, castor3d::SheenComponent::ComponentsShader, castor3d::SpecularComponent::ComponentsShader, castor3d::SubsurfaceScatteringComponent::ComponentsShader, castor3d::ThicknessComponent::ComponentsShader, castor3d::TransmissionComponent::ComponentsShader, castor3d::OcclusionMapComponent::ComponentsShader, castor3d::TransmittanceMapComponent::ComponentsShader, castor3d::AlphaTestComponent::ComponentsShader, castor3d::ColourComponent::ComponentsShader, castor3d::HeightComponent::ComponentsShader, castor3d::OpacityComponent::ComponentsShader, castor3d::ReflectionComponent::ComponentsShader, et castor3d::RefractionComponent::ComponentsShader.

◆ getId()

C3D_API PassComponentID castor3d::shader::PassComponentsShader::getId ( ) const

Référencé par castor3d::AttenuationMapComponent::ComponentsShader::getTextureFlags(), castor3d::ClearcoatMapComponent::ComponentsShader::getTextureFlags(), castor3d::ClearcoatNormalMapComponent::ComponentsShader::getTextureFlags(), castor3d::ClearcoatRoughnessMapComponent::ComponentsShader::getTextureFlags(), castor3d::ColourMapComponent::ComponentsShader::getTextureFlags(), castor3d::EmissiveMapComponent::ComponentsShader::getTextureFlags(), castor3d::GlossinessMapComponent::ComponentsShader::getTextureFlags(), castor3d::HeightMapComponent::ComponentsShader::getTextureFlags(), castor3d::IridescenceMapComponent::ComponentsShader::getTextureFlags(), castor3d::IridescenceThicknessMapComponent::ComponentsShader::getTextureFlags(), castor3d::MetalnessMapComponent::ComponentsShader::getTextureFlags(), castor3d::NormalMapComponent::ComponentsShader::getTextureFlags(), castor3d::OcclusionMapComponent::ComponentsShader::getTextureFlags(), castor3d::OpacityMapComponent::ComponentsShader::getTextureFlags(), castor3d::RoughnessMapComponent::ComponentsShader::getTextureFlags(), castor3d::SheenMapComponent::ComponentsShader::getTextureFlags(), castor3d::SheenRoughnessMapComponent::ComponentsShader::getTextureFlags(), castor3d::SpecularFactorMapComponent::ComponentsShader::getTextureFlags(), castor3d::SpecularMapComponent::ComponentsShader::getTextureFlags(), castor3d::TransmissionMapComponent::ComponentsShader::getTextureFlags(), castor3d::TransmittanceMapComponent::ComponentsShader::getTextureFlags(), castor3d::FractalMappingComponent::ComponentsShader::isMapSampling(), et castor3d::UntileMappingComponent::ComponentsShader::isMapSampling().

Voici le graphe des appelants de cette fonction :

◆ getPlugin()

PassComponentPlugin const & castor3d::shader::PassComponentsShader::getPlugin ( ) const
inline

◆ isMapSampling()

virtual C3D_API bool castor3d::shader::PassComponentsShader::isMapSampling ( PipelineFlags const &  flags) const
inlinevirtual
Renvoie
true si l'échantillonnage de texture du composant est utilisable par rapport à flags.

Réimplémentée dans castor3d::FractalMappingComponent::ComponentsShader, et castor3d::UntileMappingComponent::ComponentsShader.

◆ sampleMap() [1/2]

virtual C3D_API sdw::Vec4 castor3d::shader::PassComponentsShader::sampleMap ( sdw::CombinedImage2DRgba32 const &  map,
sdw::Vec3 const &  texCoords,
shader::BlendComponents const &  components 
) const
virtual

Laisse le composant échantillonner la texture.

Paramètres
[in]mapLa texture.
[in]texCoordsLes coordonnées de texture.
[in]componentsContient les membres du composants.

Réimplémentée dans castor3d::FractalMappingComponent::ComponentsShader, et castor3d::UntileMappingComponent::ComponentsShader.

◆ sampleMap() [2/2]

virtual C3D_API sdw::Vec4 castor3d::shader::PassComponentsShader::sampleMap ( sdw::CombinedImage2DRgba32 const &  map,
shader::DerivTex const &  texCoords,
shader::BlendComponents const &  components 
) const
virtual

Laisse le composant échantillonner la texture.

Paramètres
[in]mapLa texture.
[in]texCoordsLes coordonnées de texture.
[in]componentsContient les membres du composants.

Réimplémentée dans castor3d::FractalMappingComponent::ComponentsShader, et castor3d::UntileMappingComponent::ComponentsShader.

◆ updateComponent()

virtual C3D_API void castor3d::shader::PassComponentsShader::updateComponent ( TextureCombine const &  combine,
shader::BlendComponents components 
) const
inlinevirtual

Ajuste les données du composant après que les textures ont été traitées.

Paramètres
[in]combineUtilisé pour vérifier si les textures du composant sont activées.
[in,out]componentsContient les membres du composant.

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