Castor3D
..
|
Le pipeline de rendu. Plus de détails...
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 |
ShaderProgram & | GetProgram () |
PipelineFlags const & | GetFlags () const |
uint32_t | GetTexturesCount () |
PushUniform1s & | GetDirectionalShadowMapsVariable () |
PushUniform1s & | GetSpotShadowMapsVariable () |
PushUniform1s & | GetPointShadowMapsVariable () |
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 |
ShaderProgram & | m_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 |
Le pipeline de rendu.
|
explicit |
Constructeur.
[in] | p_renderSystem | Le RenderSystem parent. |
[in] | p_dsState | L'état de stencil et profondeur. |
[in] | p_rsState | L'état de rastériseur. |
[in] | p_blState | L'état de mélange. |
[in] | p_msState | L'état de multi-échantillonnage. |
[in] | p_program | Le programme shader. |
[in] | p_flags | Les indicateurs de création. |
|
virtual |
Destructeur.
C3D_API void Castor3D::RenderPipeline::AddUniformBuffer | ( | UniformBuffer & | p_ubo | ) |
Ajoute un tampon d'uniformes à ce pipeline.
|
pure virtual |
Applique le pipeline.
C3D_API void Castor3D::RenderPipeline::ApplyMatrices | ( | UniformBuffer const & | p_matrixBuffer, |
uint64_t | p_matricesMask | ||
) |
Met toutes les matrices dans le buffer de variables donné.
[in] | p_matrixBuffer | Le buffer de variables de matrices. |
[in] | p_matricesMask | Une combinaison en OU binaire de MASK_MTXMODE, pour filtrer les matrices à appliquer. |
C3D_API void Castor3D::RenderPipeline::ApplyModel | ( | UniformBuffer const & | p_matrixBuffer | ) | const |
Met la matrice de modèle dans le buffer de variables donné.
[in] | p_matrixBuffer | Le buffer de variables de matrices. |
C3D_API void Castor3D::RenderPipeline::ApplyNormal | ( | UniformBuffer const & | p_matrixBuffer | ) |
Met la matrice de normales dans le buffer de variables donné.
[in] | p_matrixBuffer | Le buffer de variables de matrices. |
C3D_API void Castor3D::RenderPipeline::ApplyProjection | ( | UniformBuffer const & | p_matrixBuffer | ) | const |
Met la matrice de projection dans le buffer de variables donné.
[in] | p_matrixBuffer | Le buffer de variables de matrices. |
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é.
[in] | p_index | L'indice de la texture. |
[in] | p_matrixBuffer | Le buffer de variables de matrices. |
C3D_API void Castor3D::RenderPipeline::ApplyView | ( | UniformBuffer const & | p_matrixBuffer | ) | const |
Met la matrice de vue dans le buffer de variables donné.
[in] | p_matrixBuffer | Le buffer de variables de matrices. |
C3D_API void Castor3D::RenderPipeline::Cleanup | ( | ) |
Nettoie le pipeline.
|
inline |
Références m_directionalShadowMaps.
Référencé par Castor3D::DoFillShaderDepthMaps().
|
inline |
Références m_flags.
Référencé par Castor3D::DoBindPass(), Castor3D::DoFillShaderDepthMaps(), et Castor3D::DoUnbindPass().
|
inline |
Références m_mtxModel.
|
inline |
Références m_pointShadowMaps.
Référencé par Castor3D::DoFillShaderDepthMaps().
|
inline |
Références m_program.
|
inline |
Références m_program.
|
inline |
Références m_mtxProjection.
|
inline |
Références m_spotShadowMaps.
Référencé par Castor3D::DoFillShaderDepthMaps().
|
inline |
Récupère la matrice de texture pour l'indice donné.
[in] | p_index | L'indice de la texture. |
Références m_mtxTexture.
|
inline |
Références m_textureCount.
Référencé par Castor3D::DoFillShaderDepthMaps().
|
inline |
Références m_mtxView.
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.
[in] | p_screen | Les coordonnées écran. |
[in] | p_viewport | Le viewport. |
[out] | p_result | Reçoit coordonnées dans la scène. |
false
si le mode courant est invalide.
|
inline |
|
inline |
|
inline |
Définit la matrice projection.
[in] | p_index | L'indice de la texture. |
[in] | p_mtx | La nouvelle matrice. |
Références m_mtxTexture.
|
inline |
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.
[in] | p_scene | Les coordonnées dans la scène. |
[in] | p_viewport | Le viewport. |
[out] | p_result | Reçoit les coordonnées écran. |
false
si le mode courant est invalide.
|
protected |
Les bindings de tampons d'uniformes.
|
protected |
L'état de mélange.
|
protected |
La variable shader pour les maps d'ombres des lumières directionnelles.
Référencé par GetDirectionalShadowMapsVariable().
|
protected |
L'état de stencil et profondeur.
|
protected |
Les indicateurs de création.
Référencé par GetFlags().
|
protected |
L'état de multi-échantillonnage.
|
protected |
La matrice modèle.
Référencé par GetModelMatrix(), et SetModelMatrix().
|
protected |
La matrice des normales.
|
protected |
La matrice projection.
Référencé par GetProjectionMatrix(), et SetProjectionMatrix().
|
protected |
Les matrices de texture.
Référencé par GetTextureMatrix(), et SetTextureMatrix().
|
protected |
La matrice vue.
Référencé par GetViewMatrix(), et SetViewMatrix().
|
protected |
La variable shader pour les maps d'ombres des lumières ponctuelles.
Référencé par GetPointShadowMapsVariable().
|
protected |
Le programme shader.
Référencé par GetProgram().
|
protected |
L'état de rastériseur.
|
protected |
Le tampon de variables shader pour la scène.
|
protected |
La variable shader pour les maps d'ombres des lumières spot.
Référencé par GetSpotShadowMapsVariable().
|
protected |
Le nombre de textures utilisées par le programme.
Référencé par GetTexturesCount().
|
static |
|
static |
|
static |
|
static |
|
static |