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

Implémentation du mappage d'ombres. Plus de détails...

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

Fonctions membres publiques

C3D_API ShadowMap (Engine &engine, TextureUnit &&shadowMap, TextureUnit &&linearMap, ShadowMapPassSPtr pass)
 Constructeur. Plus de détails...
 
C3D_API ~ShadowMap ()
 Destructeur. Plus de détails...
 
C3D_API bool initialise ()
 Initialise le frame buffer et les données spécifiques au type de source lumineuse. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie le frame buffer et les données spécifiques au type de source lumineuse. Plus de détails...
 
virtual C3D_API void update (Camera const &camera, RenderQueueArray &queues, Light &light, uint32_t index)=0
 Met à jour les passes, en sélectionnant les lumières qui projetteront une ombre. Plus de détails...
 
virtual C3D_API void render ()=0
 Dessine la shadow map de la lumière donnée. Plus de détails...
 
virtual C3D_API void debugDisplay (castor::Size const &size, uint32_t index)=0
 Dumpe la texture d'ombres sur l'écran. Plus de détails...
 
C3D_API void updateFlags (PassFlags &passFlags, TextureChannels &textureFlags, ProgramFlags &programFlags, SceneFlags &sceneFlags) const
 Modifie les indicateurs donnés pour le faire correspondre au pré-requis de la passe de rendus. Plus de détails...
 
C3D_API glsl::Shader getVertexShaderSource (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, bool invertNormals) const
 Récupère le source du vertex shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API glsl::Shader getGeometryShaderSource (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags) const
 Récupère le source du geometry shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API glsl::Shader getPixelShaderSource (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, ComparisonFunc alphaFunc) const
 Récupère le source du pixel shader qui correspond aux indicateurs donnés. Plus de détails...
 
TextureUnitgetTexture ()
 
TextureUnit const & getTexture () const
 
TextureUnitgetDepth ()
 
TextureUnit const & getDepth () const
 

Fonctions membres protégées

void doDiscardAlpha (glsl::GlslWriter &writer, TextureChannels const &textureFlags, ComparisonFunc alphaFunc, glsl::Int const &material, shader::Materials const &materials) const
 Défausse les matériaux avec du mélange alpha ou un fonction alpha, si besoin est. Plus de détails...
 

Attributs protégés

FrameBufferSPtr m_frameBuffer
 
std::set< GeometryBuffersSPtr > m_geometryBuffers
 
ShadowMapPassSPtr m_pass
 
TextureUnit m_shadowMap
 
TextureUnit m_linearMap
 

Description détaillée

Implémentation du mappage d'ombres.

Auteur
Sylvain DOREMUS
Version
0.9.0
Date
30/08/2016

Documentation des constructeurs et destructeur

◆ ShadowMap()

C3D_API castor3d::ShadowMap::ShadowMap ( Engine engine,
TextureUnit &&  shadowMap,
TextureUnit &&  linearMap,
ShadowMapPassSPtr  pass 
)

Constructeur.

Paramètres
[in]engineLe moteur.
[in]shadowMapLa texture d'ombres.
[in]linearMapLa texture de profondeur linéaire.
[in]passLa passe utilisée pour rendre cette texture.

◆ ~ShadowMap()

C3D_API castor3d::ShadowMap::~ShadowMap ( )

Destructeur.

Documentation des fonctions membres

◆ cleanup()

C3D_API void castor3d::ShadowMap::cleanup ( )

Nettoie le frame buffer et les données spécifiques au type de source lumineuse.

◆ debugDisplay()

virtual C3D_API void castor3d::ShadowMap::debugDisplay ( castor::Size const &  size,
uint32_t  index 
)
pure virtual

Dumpe la texture d'ombres sur l'écran.

Paramètres
[in]sizeLes dimensions d'affichage.
[in]indexL'indice de la texture d'ombres (pour calculer sa position).

Implémenté dans castor3d::ShadowMapDirectional, castor3d::ShadowMapPoint, et castor3d::ShadowMapSpot.

◆ doDiscardAlpha()

void castor3d::ShadowMap::doDiscardAlpha ( glsl::GlslWriter &  writer,
TextureChannels const &  textureFlags,
ComparisonFunc  alphaFunc,
glsl::Int const &  material,
shader::Materials const &  materials 
) const
protected

Défausse les matériaux avec du mélange alpha ou un fonction alpha, si besoin est.

Paramètres
[in]writerLe writer GLSL.
[in]textureFlagsLes indicateurs de texture.
alphaFuncLa fonction d'opacité.
[in]materialL'indice du matériau.
[in]materialsLes matériaux.

Référencé par getDepth().

+ Voici le graphe des appelants de cette fonction :

◆ getDepth() [1/2]

TextureUnit& castor3d::ShadowMap::getDepth ( )
inline

Références m_linearMap.

Référencé par castor3d::LightPassShadow< LtType >::render().

+ Voici le graphe des appelants de cette fonction :

◆ getDepth() [2/2]

TextureUnit const& castor3d::ShadowMap::getDepth ( ) const
inline

Références C3D_API, doDiscardAlpha(), et m_linearMap.

+ Voici le graphe d'appel pour cette fonction :

◆ getGeometryShaderSource()

C3D_API glsl::Shader castor3d::ShadowMap::getGeometryShaderSource ( PassFlags const &  passFlags,
TextureChannels const &  textureFlags,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags 
) const

Récupère le source du geometry shader qui correspond aux indicateurs donnés.

Paramètres
[in]passFlagsUne combinaison de PassFlag.
[in]textureFlagsUne combinaison de TextureChannel.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.

◆ getPixelShaderSource()

C3D_API glsl::Shader castor3d::ShadowMap::getPixelShaderSource ( PassFlags const &  passFlags,
TextureChannels const &  textureFlags,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags,
ComparisonFunc  alphaFunc 
) const

Récupère le source du pixel shader qui correspond aux indicateurs donnés.

Paramètres
[in]passFlagsUne combinaison de PassFlag.
[in]textureFlagsUne combinaison de TextureChannel.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
[in]alphaFuncLa fonction de test alpha.

◆ getTexture() [1/2]

TextureUnit& castor3d::ShadowMap::getTexture ( )
inline

◆ getTexture() [2/2]

TextureUnit const& castor3d::ShadowMap::getTexture ( ) const
inline

Références m_shadowMap.

◆ getVertexShaderSource()

C3D_API glsl::Shader castor3d::ShadowMap::getVertexShaderSource ( PassFlags const &  passFlags,
TextureChannels const &  textureFlags,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags,
bool  invertNormals 
) const

Récupère le source du vertex shader qui correspond aux indicateurs donnés.

Paramètres
[in]passFlagsUne combinaison de PassFlag.
[in]textureFlagsUne combinaison de TextureChannel.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
[in]invertNormalsDit si les normales doivent être inversées, dans le programme.

◆ initialise()

C3D_API bool castor3d::ShadowMap::initialise ( )

Initialise le frame buffer et les données spécifiques au type de source lumineuse.

◆ render()

virtual C3D_API void castor3d::ShadowMap::render ( )
pure virtual

Dessine la shadow map de la lumière donnée.

Implémenté dans castor3d::ShadowMapDirectional, castor3d::ShadowMapPoint, et castor3d::ShadowMapSpot.

◆ update()

virtual C3D_API void castor3d::ShadowMap::update ( Camera const &  camera,
RenderQueueArray queues,
Light light,
uint32_t  index 
)
pure virtual

Met à jour les passes, en sélectionnant les lumières qui projetteront une ombre.

Remarques
Récupère les files de rendu, pour mise à jour ultérieure.
Paramètres
[in]cameraLa caméra de l'observateur.
[out]queuesReçoit les files de rendu nécessaires pour le dessin de la frame.
[out]lightLa source lumineuse.
[out]indexL'indice de la texture.

Implémenté dans castor3d::ShadowMapDirectional, castor3d::ShadowMapPoint, et castor3d::ShadowMapSpot.

◆ updateFlags()

C3D_API void castor3d::ShadowMap::updateFlags ( PassFlags &  passFlags,
TextureChannels &  textureFlags,
ProgramFlags &  programFlags,
SceneFlags &  sceneFlags 
) const

Modifie les indicateurs donnés pour le faire correspondre au pré-requis de la passe de rendus.

Paramètres
[in,out]passFlagsUne combinaison de PassFlag.
[in,out]textureFlagsUne combinaison de TextureChannel.
[in,out]programFlagsUne combinaison de ProgramFlag.
[in,out]sceneFlagsUne combinaison de SceneFlag.

Documentation des données membres

◆ m_frameBuffer

FrameBufferSPtr castor3d::ShadowMap::m_frameBuffer
protected

Le tampon d'image.

◆ m_geometryBuffers

std::set< GeometryBuffersSPtr > castor3d::ShadowMap::m_geometryBuffers
protected

Les tampons de géométrie.

◆ m_linearMap

TextureUnit castor3d::ShadowMap::m_linearMap
protected

La texture de profondeur linéaire.

Référencé par getDepth().

◆ m_pass

ShadowMapPassSPtr castor3d::ShadowMap::m_pass
protected

Les passes de shadow mapping utilisées pendant le rendu.

◆ m_shadowMap

TextureUnit castor3d::ShadowMap::m_shadowMap
protected

La texture de mappage d'ombres.

Référencé par castor3d::ShadowMapPoint::getTexture(), et getTexture().


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