Castor3D  ..
Fonctions membres publiques | Attributs publics statiques | Attributs protégés | Liste de tous les membres
Référence de la classe Castor3D::RenderPipelineabstract

Le pipeline de rendu. Plus de détails...

+ Graphe d'héritage de Castor3D::RenderPipeline:
+ Graphe de collaboration de Castor3D::RenderPipeline:

Fonctions membres publiques

C3D_API RenderPipeline (RenderSystem &p_renderSystem, DepthStencilState &&p_dsState, RasteriserState &&p_rsState, BlendState &&p_blState, MultisampleState &&p_msState, ShaderProgram &p_program, PipelineFlags const &p_flags)
 Constructeur. Plus de détails...
 
virtual C3D_API ~RenderPipeline ()
 Destructeur. Plus de détails...
 
C3D_API void Cleanup ()
 Nettoie le pipeline. Plus de détails...
 
virtual C3D_API void Apply () const =0
 Applique le pipeline. Plus de détails...
 
C3D_API void AddUniformBuffer (UniformBuffer &p_ubo)
 Ajoute un tampon d'uniformes à ce pipeline. Plus de détails...
 
C3D_API bool Project (Castor::Point3r const &p_screen, Castor::Point4r const &p_viewport, Castor::Point3r &p_result)
 Projette le point écran donné en point 3D. Plus de détails...
 
C3D_API bool UnProject (Castor::Point3i const &p_scene, Castor::Point4r const &p_viewport, Castor::Point3r &p_result)
 Dé-projette le point dans la scène donné en point écran. Plus de détails...
 
C3D_API void ApplyProjection (UniformBuffer const &p_matrixBuffer) const
 Met la matrice de projection dans le buffer de variables donné. Plus de détails...
 
C3D_API void ApplyModel (UniformBuffer const &p_matrixBuffer) const
 Met la matrice de modèle dans le buffer de variables donné. Plus de détails...
 
C3D_API void ApplyView (UniformBuffer const &p_matrixBuffer) const
 Met la matrice de vue dans le buffer de variables donné. Plus de détails...
 
C3D_API void ApplyNormal (UniformBuffer const &p_matrixBuffer)
 Met la matrice de normales dans le buffer de variables donné. Plus de détails...
 
C3D_API void ApplyTexture (uint32_t p_index, UniformBuffer const &p_matrixBuffer) const
 Met la matrice de texture 0 dans le buffer de variables donné. Plus de détails...
 
C3D_API void ApplyMatrices (UniformBuffer const &p_matrixBuffer, uint64_t p_matricesMask)
 Met toutes les matrices dans le buffer de variables donné. Plus de détails...
 
void SetModelMatrix (Castor::Matrix4x4r const &p_mtx)
 Définit la matrice modèle. Plus de détails...
 
void SetViewMatrix (Castor::Matrix4x4r const &p_mtx)
 Définit la matrice vue. Plus de détails...
 
void SetProjectionMatrix (Castor::Matrix4x4r const &p_mtx)
 Définit la matrice projection. Plus de détails...
 
void SetTextureMatrix (uint32_t p_index, Castor::Matrix4x4r const &p_mtx)
 Définit la matrice projection. Plus de détails...
 
Castor::Matrix4x4r const & GetModelMatrix () const
 
Castor::Matrix4x4r const & GetViewMatrix () const
 
Castor::Matrix4x4r const & GetProjectionMatrix () const
 
Castor::Matrix4x4r const & GetTextureMatrix (uint32_t p_index) const
 Récupère la matrice de texture pour l'indice donné. Plus de détails...
 
ShaderProgram const & GetProgram () const
 
ShaderProgramGetProgram ()
 
PipelineFlags const & GetFlags () const
 
uint32_t GetTexturesCount ()
 
PushUniform1sGetDirectionalShadowMapsVariable ()
 
PushUniform1sGetSpotShadowMapsVariable ()
 
PushUniform1sGetPointShadowMapsVariable ()
 

Attributs publics statiques

static C3D_API const Castor::String MtxProjection
 
static C3D_API const Castor::String MtxModel
 
static C3D_API const Castor::String MtxView
 
static C3D_API const Castor::String MtxNormal
 
static C3D_API const Castor::String MtxTexture [C3D_MAX_TEXTURE_MATRICES]
 

Attributs protégés

Castor::Matrix4x4r m_mtxModel
 
Castor::Matrix4x4r m_mtxView
 
Castor::Matrix4x4r m_mtxProjection
 
Castor::Matrix4x4r m_mtxNormal
 
Castor::Matrix4x4r m_mtxTexture [C3D_MAX_TEXTURE_MATRICES]
 
DepthStencilState m_dsState
 
RasteriserState m_rsState
 
BlendState m_blState
 
MultisampleState m_msState
 
ShaderProgramm_program
 
UniformBufferSPtr m_sceneUbo
 
PushUniform1sSPtr m_directionalShadowMaps
 
PushUniform1sSPtr m_spotShadowMaps
 
PushUniform1sSPtr m_pointShadowMaps
 
PipelineFlags m_flags
 
uint32_t m_textureCount { 0u }
 
std::vector< std::reference_wrapper< UniformBufferBinding > > m_bindings
 

Description détaillée

Le pipeline de rendu.

Auteur
Sylvain DOREMUS
Version
0.6.1.0
Date
03/01/2011
Remarques
Définit les diverses matrices, applique les transformations supportées.

Documentation des constructeurs et destructeur

◆ RenderPipeline()

C3D_API Castor3D::RenderPipeline::RenderPipeline ( RenderSystem p_renderSystem,
DepthStencilState &&  p_dsState,
RasteriserState &&  p_rsState,
BlendState &&  p_blState,
MultisampleState &&  p_msState,
ShaderProgram p_program,
PipelineFlags const &  p_flags 
)
explicit

Constructeur.

Paramètres
[in]p_renderSystemLe RenderSystem parent.
[in]p_dsStateL'état de stencil et profondeur.
[in]p_rsStateL'état de rastériseur.
[in]p_blStateL'état de mélange.
[in]p_msStateL'état de multi-échantillonnage.
[in]p_programLe programme shader.
[in]p_flagsLes indicateurs de création.

◆ ~RenderPipeline()

virtual C3D_API Castor3D::RenderPipeline::~RenderPipeline ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ AddUniformBuffer()

C3D_API void Castor3D::RenderPipeline::AddUniformBuffer ( UniformBuffer p_ubo)

Ajoute un tampon d'uniformes à ce pipeline.

Remarques
Crée le binding pour ce tampon, en utilisant le programme de ce pipeline.

◆ Apply()

virtual C3D_API void Castor3D::RenderPipeline::Apply ( ) const
pure virtual

Applique le pipeline.

◆ ApplyMatrices()

C3D_API void Castor3D::RenderPipeline::ApplyMatrices ( UniformBuffer const &  p_matrixBuffer,
uint64_t  p_matricesMask 
)

Met toutes les matrices dans le buffer de variables donné.

Paramètres
[in]p_matrixBufferLe buffer de variables de matrices.
[in]p_matricesMaskUne combinaison en OU binaire de MASK_MTXMODE, pour filtrer les matrices à appliquer.

◆ ApplyModel()

C3D_API void Castor3D::RenderPipeline::ApplyModel ( UniformBuffer const &  p_matrixBuffer) const

Met la matrice de modèle dans le buffer de variables donné.

Paramètres
[in]p_matrixBufferLe buffer de variables de matrices.

◆ ApplyNormal()

C3D_API void Castor3D::RenderPipeline::ApplyNormal ( UniformBuffer const &  p_matrixBuffer)

Met la matrice de normales dans le buffer de variables donné.

Paramètres
[in]p_matrixBufferLe buffer de variables de matrices.

◆ ApplyProjection()

C3D_API void Castor3D::RenderPipeline::ApplyProjection ( UniformBuffer const &  p_matrixBuffer) const

Met la matrice de projection dans le buffer de variables donné.

Paramètres
[in]p_matrixBufferLe buffer de variables de matrices.

◆ ApplyTexture()

C3D_API void Castor3D::RenderPipeline::ApplyTexture ( uint32_t  p_index,
UniformBuffer const &  p_matrixBuffer 
) const

Met la matrice de texture 0 dans le buffer de variables donné.

Paramètres
[in]p_indexL'indice de la texture.
[in]p_matrixBufferLe buffer de variables de matrices.

◆ ApplyView()

C3D_API void Castor3D::RenderPipeline::ApplyView ( UniformBuffer const &  p_matrixBuffer) const

Met la matrice de vue dans le buffer de variables donné.

Paramètres
[in]p_matrixBufferLe buffer de variables de matrices.

◆ Cleanup()

C3D_API void Castor3D::RenderPipeline::Cleanup ( )

Nettoie le pipeline.

◆ GetDirectionalShadowMapsVariable()

PushUniform1s& Castor3D::RenderPipeline::GetDirectionalShadowMapsVariable ( )
inline
Renvoie
La variable shader des maps d'ombres pour les lumières directionnelles.

Références m_directionalShadowMaps.

Référencé par Castor3D::DoFillShaderDepthMaps().

+ Voici le graphe des appelants de cette fonction :

◆ GetFlags()

PipelineFlags const& Castor3D::RenderPipeline::GetFlags ( ) const
inline
Renvoie
Les indicateurs de création.

Références m_flags.

Référencé par Castor3D::DoBindPass(), Castor3D::DoFillShaderDepthMaps(), et Castor3D::DoUnbindPass().

+ Voici le graphe des appelants de cette fonction :

◆ GetModelMatrix()

Castor::Matrix4x4r const& Castor3D::RenderPipeline::GetModelMatrix ( ) const
inline
Renvoie
La matrice de modèle.

Références m_mtxModel.

◆ GetPointShadowMapsVariable()

PushUniform1s& Castor3D::RenderPipeline::GetPointShadowMapsVariable ( )
inline
Renvoie
La variable shader des maps d'ombres pour les lumières ponctuelles.

Références m_pointShadowMaps.

Référencé par Castor3D::DoFillShaderDepthMaps().

+ Voici le graphe des appelants de cette fonction :

◆ GetProgram() [1/2]

ShaderProgram const& Castor3D::RenderPipeline::GetProgram ( ) const
inline
Renvoie
Le programme shader.

Références m_program.

◆ GetProgram() [2/2]

ShaderProgram& Castor3D::RenderPipeline::GetProgram ( )
inline
Renvoie
Le programme shader.

Références m_program.

◆ GetProjectionMatrix()

Castor::Matrix4x4r const& Castor3D::RenderPipeline::GetProjectionMatrix ( ) const
inline
Renvoie
La matrice de projection.

Références m_mtxProjection.

◆ GetSpotShadowMapsVariable()

PushUniform1s& Castor3D::RenderPipeline::GetSpotShadowMapsVariable ( )
inline
Renvoie
La variable shader des maps d'ombres pour les lumières spots.

Références m_spotShadowMaps.

Référencé par Castor3D::DoFillShaderDepthMaps().

+ Voici le graphe des appelants de cette fonction :

◆ GetTextureMatrix()

Castor::Matrix4x4r const& Castor3D::RenderPipeline::GetTextureMatrix ( uint32_t  p_index) const
inline

Récupère la matrice de texture pour l'indice donné.

Paramètres
[in]p_indexL'indice de la texture.
Renvoie
La matrice.

Références m_mtxTexture.

◆ GetTexturesCount()

uint32_t Castor3D::RenderPipeline::GetTexturesCount ( )
inline
Renvoie
Le nombre de textures utilisées par le programme.

Références m_textureCount.

Référencé par Castor3D::DoFillShaderDepthMaps().

+ Voici le graphe des appelants de cette fonction :

◆ GetViewMatrix()

Castor::Matrix4x4r const& Castor3D::RenderPipeline::GetViewMatrix ( ) const
inline
Renvoie
La matrice de vue.

Références m_mtxView.

◆ Project()

C3D_API bool Castor3D::RenderPipeline::Project ( Castor::Point3r const &  p_screen,
Castor::Point4r const &  p_viewport,
Castor::Point3r &  p_result 
)

Projette le point écran donné en point 3D.

Paramètres
[in]p_screenLes coordonnées écran.
[in]p_viewportLe viewport.
[out]p_resultReçoit coordonnées dans la scène.
Renvoie
false si le mode courant est invalide.

◆ SetModelMatrix()

void Castor3D::RenderPipeline::SetModelMatrix ( Castor::Matrix4x4r const &  p_mtx)
inline

Définit la matrice modèle.

Paramètres
[in]p_mtxLa nouvelle matrice.

Références m_mtxModel.

◆ SetProjectionMatrix()

void Castor3D::RenderPipeline::SetProjectionMatrix ( Castor::Matrix4x4r const &  p_mtx)
inline

Définit la matrice projection.

Paramètres
[in]p_mtxLa nouvelle matrice.

Références m_mtxProjection.

◆ SetTextureMatrix()

void Castor3D::RenderPipeline::SetTextureMatrix ( uint32_t  p_index,
Castor::Matrix4x4r const &  p_mtx 
)
inline

Définit la matrice projection.

Paramètres
[in]p_indexL'indice de la texture.
[in]p_mtxLa nouvelle matrice.

Références m_mtxTexture.

◆ SetViewMatrix()

void Castor3D::RenderPipeline::SetViewMatrix ( Castor::Matrix4x4r const &  p_mtx)
inline

Définit la matrice vue.

Paramètres
[in]p_mtxLa nouvelle matrice.

Références m_mtxView.

◆ UnProject()

C3D_API bool Castor3D::RenderPipeline::UnProject ( Castor::Point3i const &  p_scene,
Castor::Point4r const &  p_viewport,
Castor::Point3r &  p_result 
)

Dé-projette le point dans la scène donné en point écran.

Paramètres
[in]p_sceneLes coordonnées dans la scène.
[in]p_viewportLe viewport.
[out]p_resultReçoit les coordonnées écran.
Renvoie
false si le mode courant est invalide.

Documentation des données membres

◆ m_bindings

std::vector< std::reference_wrapper< UniformBufferBinding > > Castor3D::RenderPipeline::m_bindings
protected

Les bindings de tampons d'uniformes.

◆ m_blState

BlendState Castor3D::RenderPipeline::m_blState
protected

L'état de mélange.

◆ m_directionalShadowMaps

PushUniform1sSPtr Castor3D::RenderPipeline::m_directionalShadowMaps
protected

La variable shader pour les maps d'ombres des lumières directionnelles.

Référencé par GetDirectionalShadowMapsVariable().

◆ m_dsState

DepthStencilState Castor3D::RenderPipeline::m_dsState
protected

L'état de stencil et profondeur.

◆ m_flags

PipelineFlags Castor3D::RenderPipeline::m_flags
protected

Les indicateurs de création.

Référencé par GetFlags().

◆ m_msState

MultisampleState Castor3D::RenderPipeline::m_msState
protected

L'état de multi-échantillonnage.

◆ m_mtxModel

Castor::Matrix4x4r Castor3D::RenderPipeline::m_mtxModel
protected

La matrice modèle.

Référencé par GetModelMatrix(), et SetModelMatrix().

◆ m_mtxNormal

Castor::Matrix4x4r Castor3D::RenderPipeline::m_mtxNormal
protected

La matrice des normales.

◆ m_mtxProjection

Castor::Matrix4x4r Castor3D::RenderPipeline::m_mtxProjection
protected

La matrice projection.

Référencé par GetProjectionMatrix(), et SetProjectionMatrix().

◆ m_mtxTexture

Castor::Matrix4x4r Castor3D::RenderPipeline::m_mtxTexture[C3D_MAX_TEXTURE_MATRICES]
protected

Les matrices de texture.

Référencé par GetTextureMatrix(), et SetTextureMatrix().

◆ m_mtxView

Castor::Matrix4x4r Castor3D::RenderPipeline::m_mtxView
protected

La matrice vue.

Référencé par GetViewMatrix(), et SetViewMatrix().

◆ m_pointShadowMaps

PushUniform1sSPtr Castor3D::RenderPipeline::m_pointShadowMaps
protected

La variable shader pour les maps d'ombres des lumières ponctuelles.

Référencé par GetPointShadowMapsVariable().

◆ m_program

ShaderProgram& Castor3D::RenderPipeline::m_program
protected

Le programme shader.

Référencé par GetProgram().

◆ m_rsState

RasteriserState Castor3D::RenderPipeline::m_rsState
protected

L'état de rastériseur.

◆ m_sceneUbo

UniformBufferSPtr Castor3D::RenderPipeline::m_sceneUbo
protected

Le tampon de variables shader pour la scène.

◆ m_spotShadowMaps

PushUniform1sSPtr Castor3D::RenderPipeline::m_spotShadowMaps
protected

La variable shader pour les maps d'ombres des lumières spot.

Référencé par GetSpotShadowMapsVariable().

◆ m_textureCount

uint32_t Castor3D::RenderPipeline::m_textureCount { 0u }
protected

Le nombre de textures utilisées par le programme.

Référencé par GetTexturesCount().

◆ MtxModel

C3D_API const Castor::String Castor3D::RenderPipeline::MtxModel
static

◆ MtxNormal

C3D_API const Castor::String Castor3D::RenderPipeline::MtxNormal
static

◆ MtxProjection

C3D_API const Castor::String Castor3D::RenderPipeline::MtxProjection
static

◆ MtxTexture

C3D_API const Castor::String Castor3D::RenderPipeline::MtxTexture[C3D_MAX_TEXTURE_MATRICES]
static

◆ MtxView

C3D_API const Castor::String Castor3D::RenderPipeline::MtxView
static

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