Castor3D  ..
Classes | Fonctions membres publiques | Attributs publics | Fonctions membres protégées | Liste de tous les membres
Référence de la classe castor3d::Passabstract

Classe de base d'une passe d'un matériau. Plus de détails...

+ Graphe d'héritage de castor3d::Pass:
+ Graphe de collaboration de castor3d::Pass:

Classes

class  TextWriter
 Loader de Pass. Plus de détails...
 

Fonctions membres publiques

C3D_API void initialise ()
 Initialise la passe et toutes ses dépendances. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie la passe et toutes ses dépendances. Plus de détails...
 
C3D_API void bindTextures ()
 Active les textures de la passe. Plus de détails...
 
C3D_API void unbindTextures ()
 Désactive les textures de la passe. Plus de détails...
 
C3D_API void addTextureUnit (TextureUnitSPtr p_unit)
 Ajoute une unité de texture. Plus de détails...
 
C3D_API TextureUnitSPtr getTextureUnit (TextureChannel channel) const
 Récupère la TextureUnit au canal demandé. Plus de détails...
 
C3D_API void destroyTextureUnit (uint32_t index)
 Détruit la TextureUnit à l'index donné. Plus de détails...
 
C3D_API TextureUnitSPtr getTextureUnit (uint32_t index) const
 Récupère la TextureUnit à l'index donné. Plus de détails...
 
C3D_API bool hasAlphaBlending () const
 Dit si la passe a besoin de mélange d'alpha. Plus de détails...
 
C3D_API void prepareTextures ()
 Réduit les textures. Plus de détails...
 
C3D_API MaterialType getType () const
 
C3D_API void setOpacity (float value)
 Définit la valeur alpha globale. Plus de détails...
 
C3D_API PassFlags getPassFlags () const
 
C3D_API void setSubsurfaceScattering (SubsurfaceScatteringUPtr &&value)
 Définit les informations étendues pour le subsurface scattering. Plus de détails...
 
virtual C3D_API uint32_t getPassSize () const =0
 
virtual C3D_API void accept (PassBuffer &buffer) const =0
 Remplit les variables de shader du noeud de rendu donné. Plus de détails...
 
TextureChannels const & getTextureFlags () const
 
bool hasAutomaticShader () const
 
void setTwoSided (bool value)
 Définit le statut d'application aux deux faces. Plus de détails...
 
void setEmissive (float const &value)
 Définit le facteur d'émission. Plus de détails...
 
void setRefractionRatio (float value)
 Définit le ratio de réfraction. Plus de détails...
 
void setParallaxOcclusion (bool value)
 Définit l'utilisation du parallax occlusion mapping. Plus de détails...
 
void setAlphaBlendMode (BlendMode value)
 Définit le mode de mélange alpha. Plus de détails...
 
void setColourBlendMode (BlendMode value)
 Définit le mode de mélange couleur. Plus de détails...
 
uint32_t getTextureUnitsCount () const
 
bool IsTwoSided () const
 
bool hasEnvironmentMapping () const
 
float getOpacity () const
 
float getEmissive () const
 
float getRefractionRatio () const
 
BlendMode getAlphaBlendMode () const
 
BlendMode getColourBlendMode () const
 
auto begin () const
 
auto begin ()
 
auto end () const
 
auto end ()
 
bool needsGammaCorrection () const
 
uint32_t getId () const
 
void setId (uint32_t value)
 Définit l'ID de la passe. Plus de détails...
 
castor3d::ComparisonFunc getAlphaFunc () const
 
void setAlphaFunc (castor3d::ComparisonFunc value)
 Définit la fonction d'alpha. Plus de détails...
 
float getAlphaValue () const
 
void setAlphaValue (float value)
 Définit la valeur de référence pour l'alpha. Plus de détails...
 
bool hasSubsurfaceScattering () const
 
bool hasParallaxOcclusion () const
 
SubsurfaceScattering const & getSubsurfaceScattering () const
 

Attributs publics

OnPassChanged onChanged
 

Fonctions membres protégées

C3D_API Pass (Material &parent)
 Constructeur. Plus de détails...
 
C3D_API ~Pass ()
 Destructeur. Plus de détails...
 
bool doPrepareTexture (TextureChannel channel, uint32_t &index, TextureUnitSPtr &opacitySource, castor::PxBufferBaseSPtr &opacity)
 Prépare une texture à être intégrée à la passe. Plus de détails...
 
castor::PxBufferBaseSPtr doPrepareTexture (TextureChannel channel, uint32_t &index)
 Prépare une texture à être intégrée à la passe. Plus de détails...
 
void doPrepareOpacity (TextureUnitSPtr opacitySource, castor::PxBufferBaseSPtr opacityImage, uint32_t &index)
 Prépare le canal d'opacité. Plus de détails...
 
void doUpdateFlags ()
 Met à jour les indicateurs de texture en fonction des unités de texture. Plus de détails...
 
void doReduceTexture (TextureChannel channel, castor::PixelFormat format)
 Réduit la texture au canal donné dans le format de pixels donné. Plus de détails...
 

Description détaillée

Classe de base d'une passe d'un matériau.

Auteur
Sylvain DOREMUS
Version
0.1
Date
09/02/2010

Documentation des constructeurs et destructeur

◆ Pass()

C3D_API castor3d::Pass::Pass ( Material parent)
explicitprotected

Constructeur.

Paramètres
[in]parentLe matériau parent.

◆ ~Pass()

C3D_API castor3d::Pass::~Pass ( )
protected

Destructeur.

Documentation des fonctions membres

◆ accept()

virtual C3D_API void castor3d::Pass::accept ( PassBuffer buffer) const
pure virtual

Remplit les variables de shader du noeud de rendu donné.

Implémenté dans castor3d::LegacyPass, castor3d::MetallicRoughnessPbrPass, et castor3d::SpecularGlossinessPbrPass.

◆ addTextureUnit()

C3D_API void castor3d::Pass::addTextureUnit ( TextureUnitSPtr  p_unit)

Ajoute une unité de texture.

Paramètres
[in]p_unitL'unité de texture.

◆ begin() [1/2]

auto castor3d::Pass::begin ( ) const
inline
Renvoie
Un itérateur constant sur le début du tableau de textures.

◆ begin() [2/2]

auto castor3d::Pass::begin ( )
inline
Renvoie
Un itérateur sur le début du tableau de textures.

◆ bindTextures()

C3D_API void castor3d::Pass::bindTextures ( )

Active les textures de la passe.

Référencé par castor3d::doBindPass().

+ Voici le graphe des appelants de cette fonction :

◆ cleanup()

C3D_API void castor3d::Pass::cleanup ( )

Nettoie la passe et toutes ses dépendances.

◆ destroyTextureUnit()

C3D_API void castor3d::Pass::destroyTextureUnit ( uint32_t  index)

Détruit la TextureUnit à l'index donné.

Paramètres
[in]indexL'index de la TextureUnit à détruire.

◆ doPrepareOpacity()

void castor3d::Pass::doPrepareOpacity ( TextureUnitSPtr  opacitySource,
castor::PxBufferBaseSPtr  opacityImage,
uint32_t &  index 
)
protected

Prépare le canal d'opacité.

Paramètres
[in]opacitySourceL'unité de texture depuis laquelle l'opacité provient.
[in]opacityImageLe canal alpha de opacitySource.
[in,out]indexL'index de la texture.

Référencé par getSubsurfaceScattering().

+ Voici le graphe des appelants de cette fonction :

◆ doPrepareTexture() [1/2]

bool castor3d::Pass::doPrepareTexture ( TextureChannel  channel,
uint32_t &  index,
TextureUnitSPtr &  opacitySource,
castor::PxBufferBaseSPtr &  opacity 
)
protected

Prépare une texture à être intégrée à la passe.

Remarques
Enlève le canal alpha s'il y en avait un, il est stocké dans opacity si celui-ci est vide.
Paramètres
[in]channelLe canal de texture.
[in,out]indexL'index de la texture.
[in,out]opacitySourceReçoit l'unité de texture si opacity est modifié.
[in,out]opacityReçoit le canal alpha de la texture.
Renvoie
true Si la texture possédait un canal alpha.

Référencé par getSubsurfaceScattering().

+ Voici le graphe des appelants de cette fonction :

◆ doPrepareTexture() [2/2]

castor::PxBufferBaseSPtr castor3d::Pass::doPrepareTexture ( TextureChannel  channel,
uint32_t &  index 
)
protected

Prépare une texture à être intégrée à la passe.

Remarques
Enlève le canal alpha s'il y en avait un.
Paramètres
[in]channelLe canal de texture.
[in,out]indexL'index de la texture.
Renvoie
Le canal alpha de la texture originale.

◆ doReduceTexture()

void castor3d::Pass::doReduceTexture ( TextureChannel  channel,
castor::PixelFormat  format 
)
protected

Réduit la texture au canal donné dans le format de pixels donné.

Paramètres
[in]channelLe canal de texture.
[in]formatLe format de pixels voulu.

Référencé par getSubsurfaceScattering().

+ Voici le graphe des appelants de cette fonction :

◆ doUpdateFlags()

void castor3d::Pass::doUpdateFlags ( )
protected

Met à jour les indicateurs de texture en fonction des unités de texture.

Référencé par getSubsurfaceScattering().

+ Voici le graphe des appelants de cette fonction :

◆ end() [1/2]

auto castor3d::Pass::end ( ) const
inline
Renvoie
Un itérateur constant sur la fin du tableau de textures.

◆ end() [2/2]

auto castor3d::Pass::end ( )
inline
Renvoie
Un itérateur sur la fin du tableau de textures.

◆ getAlphaBlendMode()

BlendMode castor3d::Pass::getAlphaBlendMode ( ) const
inline
Renvoie
Le mode de mélange alpha.

◆ getAlphaFunc()

castor3d::ComparisonFunc castor3d::Pass::getAlphaFunc ( ) const
inline
Renvoie
La fonction d'alpha.

◆ getAlphaValue()

float castor3d::Pass::getAlphaValue ( ) const
inline
Renvoie
La valeur de référence pour l'alpha.

◆ getColourBlendMode()

BlendMode castor3d::Pass::getColourBlendMode ( ) const
inline
Renvoie
Le mode de mélange couleur.

◆ getEmissive()

float castor3d::Pass::getEmissive ( ) const
inline
Renvoie
Le facteur émission.

◆ getId()

uint32_t castor3d::Pass::getId ( ) const
inline
Renvoie
L'ID de la passe

◆ getOpacity()

float castor3d::Pass::getOpacity ( ) const
inline
Renvoie
La valeur globale d'opacité.

◆ getPassFlags()

C3D_API PassFlags castor3d::Pass::getPassFlags ( ) const
Renvoie
La combinaison d'indicateurs de passe.

◆ getPassSize()

virtual C3D_API uint32_t castor3d::Pass::getPassSize ( ) const
pure virtual
Remarques
Les passes sont alignées sur 4 flottants, donc la taille d'une passe correspond aux nombres de float[4] qu'il faut pour la contenir.

Implémenté dans castor3d::LegacyPass, castor3d::MetallicRoughnessPbrPass, et castor3d::SpecularGlossinessPbrPass.

◆ getRefractionRatio()

float castor3d::Pass::getRefractionRatio ( ) const
inline
Renvoie
Le ration de réfraction.

◆ getSubsurfaceScattering()

SubsurfaceScattering const& castor3d::Pass::getSubsurfaceScattering ( ) const
inline
Renvoie
Les informations étendues pour le subsurface scattering.

Références doPrepareOpacity(), doPrepareTexture(), doReduceTexture(), et doUpdateFlags().

+ Voici le graphe d'appel pour cette fonction :

◆ getTextureFlags()

TextureChannels const& castor3d::Pass::getTextureFlags ( ) const
inline
Renvoie
La combinaison d'indicateurs de canal de texture.

Référencé par hasEnvironmentMapping().

+ Voici le graphe des appelants de cette fonction :

◆ getTextureUnit() [1/2]

C3D_API TextureUnitSPtr castor3d::Pass::getTextureUnit ( TextureChannel  channel) const

Récupère la TextureUnit au canal demandé.

Remarques
Si plus d'une TextureUnit est trouvée pour le canal demandé, la première est retournée.
Paramètres
[in]channelLe canal.
Renvoie
nullptr si pas de TextureUnit au canal voulu.

Référencé par castor3d::doBindPassOpacityMap(), et castor3d::doUnbindPassOpacityMap().

+ Voici le graphe des appelants de cette fonction :

◆ getTextureUnit() [2/2]

C3D_API TextureUnitSPtr castor3d::Pass::getTextureUnit ( uint32_t  index) const

Récupère la TextureUnit à l'index donné.

Paramètres
[in]indexL'index voulu.
Renvoie
La TextureUnit récupérée, nullptr si index était hors bornes.

◆ getTextureUnitsCount()

uint32_t castor3d::Pass::getTextureUnitsCount ( ) const
inline
Renvoie
Le nombre d'unités de texture.

◆ getType()

C3D_API MaterialType castor3d::Pass::getType ( ) const
Renvoie
Le type de matériau.

◆ hasAlphaBlending()

C3D_API bool castor3d::Pass::hasAlphaBlending ( ) const

Dit si la passe a besoin de mélange d'alpha.

Renvoie
true si au moins une unité de texture a un canal alpha.

◆ hasAutomaticShader()

bool castor3d::Pass::hasAutomaticShader ( ) const
inline
Renvoie
true si le shader de la passe est généré automatiquement.

◆ hasEnvironmentMapping()

bool castor3d::Pass::hasEnvironmentMapping ( ) const
inline
Renvoie
true si l'environment mapping est activé sur cette passe.

Références castor3d::eReflection, castor3d::eRefraction, et getTextureFlags().

Référencé par castor3d::doBindPass().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

◆ hasParallaxOcclusion()

bool castor3d::Pass::hasParallaxOcclusion ( ) const
inline
Renvoie
true si la passe utilise le parallax occlusion mapping.

◆ hasSubsurfaceScattering()

bool castor3d::Pass::hasSubsurfaceScattering ( ) const
inline
Renvoie
true si la passe a des informations étendues pour le subsurface scattering.

◆ initialise()

C3D_API void castor3d::Pass::initialise ( )

Initialise la passe et toutes ses dépendances.

◆ IsTwoSided()

bool castor3d::Pass::IsTwoSided ( ) const
inline
Remarques
Dit si la passe s'applique sur les deux faces.

◆ needsGammaCorrection()

bool castor3d::Pass::needsGammaCorrection ( ) const
inline
Renvoie
true si la correction gamma doit être appliquée à cette passe.

◆ prepareTextures()

C3D_API void castor3d::Pass::prepareTextures ( )

Réduit les textures.

◆ setAlphaBlendMode()

void castor3d::Pass::setAlphaBlendMode ( BlendMode  value)
inline

Définit le mode de mélange alpha.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setAlphaFunc()

void castor3d::Pass::setAlphaFunc ( castor3d::ComparisonFunc  value)
inline

Définit la fonction d'alpha.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setAlphaValue()

void castor3d::Pass::setAlphaValue ( float  value)
inline

Définit la valeur de référence pour l'alpha.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setColourBlendMode()

void castor3d::Pass::setColourBlendMode ( BlendMode  value)
inline

Définit le mode de mélange couleur.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setEmissive()

void castor3d::Pass::setEmissive ( float const &  value)
inline

Définit le facteur d'émission.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setId()

void castor3d::Pass::setId ( uint32_t  value)
inline

Définit l'ID de la passe.

Paramètres
[in]valueLa nouvelle valeur.

◆ setOpacity()

C3D_API void castor3d::Pass::setOpacity ( float  value)

Définit la valeur alpha globale.

Paramètres
[in]valueLa nouvelle valeur.

◆ setParallaxOcclusion()

void castor3d::Pass::setParallaxOcclusion ( bool  value)
inline

Définit l'utilisation du parallax occlusion mapping.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setRefractionRatio()

void castor3d::Pass::setRefractionRatio ( float  value)
inline

Définit le ratio de réfraction.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ setSubsurfaceScattering()

C3D_API void castor3d::Pass::setSubsurfaceScattering ( SubsurfaceScatteringUPtr &&  value)

Définit les informations étendues pour le subsurface scattering.

Paramètres
[in]valueLa nouvelle valeur.

◆ setTwoSided()

void castor3d::Pass::setTwoSided ( bool  value)
inline

Définit le statut d'application aux deux faces.

Paramètres
[in]valueLa nouvelle valeur.

Références onChanged.

◆ unbindTextures()

C3D_API void castor3d::Pass::unbindTextures ( )

Désactive les textures de la passe.

Documentation des données membres

◆ onChanged

OnPassChanged castor3d::Pass::onChanged

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