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

Classe de base d'une passe de technique de rendu. Plus de détails...

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

Fonctions membres publiques

C3D_API RenderTechniquePass (Castor::String const &p_name, RenderTarget &p_renderTarget, RenderTechnique &p_technique, bool p_opaque, bool p_multisampling=false)
 Constructeur. Plus de détails...
 
virtual C3D_API ~RenderTechniquePass ()
 Destructeur. Plus de détails...
 
C3D_API void Render (RenderInfo &p_info, bool p_shadows)
 Fonction de rendu. Plus de détails...
 
virtual C3D_API bool InitialiseShadowMaps ()=0
 
virtual C3D_API void CleanupShadowMaps ()=0
 
virtual C3D_API void UpdateShadowMaps (RenderQueueArray &p_queues)=0
 Met à jour les maps d'ombres. Plus de détails...
 
virtual C3D_API void RenderShadowMaps ()=0
 Dessine les maps d'ombres. Plus de détails...
 
- Fonctions membres publiques hérités de Castor3D::RenderPass
virtual C3D_API ~RenderPass ()
 Destructeur. Plus de détails...
 
C3D_API bool Initialise (Castor::Size const &p_size)
 Initialise la passe. Plus de détails...
 
C3D_API void Cleanup ()
 Nettoie la passe. Plus de détails...
 
C3D_API void Update (RenderQueueArray &p_queues)
 Met à jour la passe de rendu. Plus de détails...
 
C3D_API Castor::String GetVertexShaderSource (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags, bool p_invertNormals) const
 Récupère le source du vertex shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API Castor::String GetPixelShaderSource (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags) const
 Récupère le source du pixel shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API Castor::String GetGeometryShaderSource (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags) const
 Récupère le source du geometry shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API void PreparePipeline (BlendMode p_colourBlendMode, BlendMode p_alphaBlendMode, TextureChannels &p_textureFlags, ProgramFlags &p_programFlags, SceneFlags &p_sceneFlags, bool p_twoSided)
 Prépare le pipeline qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API RenderPipelineGetPipelineFront (BlendMode p_colourBlendMode, BlendMode p_alphaBlendMode, TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags)
 Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces avant supprimées. Plus de détails...
 
C3D_API RenderPipelineGetPipelineBack (BlendMode p_colourBlendMode, BlendMode p_alphaBlendMode, TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags)
 Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces arrière supprimées. Plus de détails...
 
C3D_API SkinningRenderNode CreateSkinningNode (Pass &p_pass, RenderPipeline &p_pipeline, Submesh &p_submesh, Geometry &p_primitive, AnimatedSkeleton &p_skeleton)
 Crée un noeud de rendu animé. Plus de détails...
 
C3D_API MorphingRenderNode CreateMorphingNode (Pass &p_pass, RenderPipeline &p_pipeline, Submesh &p_submesh, Geometry &p_primitive, AnimatedMesh &p_mesh)
 Crée un noeud de rendu animé. Plus de détails...
 
C3D_API StaticRenderNode CreateStaticNode (Pass &p_pass, RenderPipeline &p_pipeline, Submesh &p_submesh, Geometry &p_primitive)
 Crée un noeud de rendu statique. Plus de détails...
 
C3D_API BillboardRenderNode CreateBillboardNode (Pass &p_pass, RenderPipeline &p_pipeline, BillboardBase &p_billboard)
 Crée un noeud de rendu statique. Plus de détails...
 
C3D_API void UpdatePipeline (RenderPipeline &p_pipeline) const
 Met à jour lee pipeline opaque. Plus de détails...
 
bool IsMultisampling () const
 

Attributs protégés

RenderTargetm_target
 
RenderTechniquem_technique
 
SceneRenderNode m_sceneNode
 
- Attributs protégés hérités de Castor3D::RenderPass
RenderSystemm_renderSystem
 
RenderQueue m_renderQueue
 
bool m_opaque { false }
 
std::map< PipelineFlags, RenderPipelineUPtr > m_frontPipelines
 
std::map< PipelineFlags, RenderPipelineUPtr > m_backPipelines
 
std::set< GeometryBuffersSPtr > m_geometryBuffers
 
bool m_multisampling { false }
 
UniformBuffer m_sceneUbo
 
UniformBuffer m_matrixUbo
 
Uniform4x4fSPtr m_projectionUniform { nullptr }
 
Uniform4x4fSPtr m_viewUniform { nullptr }
 
UniformBuffer m_modelMatrixUbo
 
UniformBuffer m_passUbo
 
std::unique_ptr< PassRenderNodeUniformsm_passNode
 
UniformBuffer m_modelUbo
 
UniformBuffer m_billboardUbo
 
UniformBuffer m_skinningUbo
 
UniformBuffer m_morphingUbo
 

Membres hérités additionnels

- Types publics hérités de Castor3D::RenderPass
using DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > >
 
- Fonctions membres protégées hérités de Castor3D::RenderPass
C3D_API RenderPass (Castor::String const &p_name, Engine &p_engine, bool p_opaque, bool p_multisampling=false)
 Constructeur. Plus de détails...
 
C3D_API PassRenderNode DoCreatePassRenderNode (Pass &p_pass, RenderPipeline &p_pipeline)
 Crée un noeud de rendu. Plus de détails...
 
C3D_API SceneRenderNode DoCreateSceneRenderNode (Scene &p_scene, RenderPipeline &p_pipeline)
 Crée un noeud de rendu de scène. Plus de détails...
 
C3D_API ShaderProgramSPtr DoGetProgram (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags, bool p_invertNormals) const
 Récupère le programme shader correspondant aux flags donnés. Plus de détails...
 
C3D_API uint32_t DoCopyNodesMatrices (StaticRenderNodeArray const &p_renderNodes, VertexBuffer &p_matrixBuffer)
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t DoCopyNodesMatrices (StaticRenderNodeArray const &p_renderNodes, VertexBuffer &p_matrixBuffer, RenderInfo &p_info)
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API void DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes)
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps)
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera)
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps)
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info)
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, Camera const &p_camera)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, Camera const &p_camera)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info)
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes)
 Dessine des billboards. Plus de détails...
 
C3D_API void DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps)
 Dessine des billboards. Plus de détails...
 
C3D_API void DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, Camera const &p_camera)
 Dessine des billboards. Plus de détails...
 
C3D_API void DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps)
 Dessine des billboards. Plus de détails...
 
C3D_API void DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info)
 Dessine des billboards. Plus de détails...
 

Description détaillée

Classe de base d'une passe de technique de rendu.

Auteur
Sylvain DOREMUS
Version
0.9.0
Date
08/12/2016

Documentation des constructeurs et destructeur

◆ RenderTechniquePass()

C3D_API Castor3D::RenderTechniquePass::RenderTechniquePass ( Castor::String const &  p_name,
RenderTarget p_renderTarget,
RenderTechnique p_technique,
bool  p_opaque,
bool  p_multisampling = false 
)

Constructeur.

Paramètres
[in]p_nameLe nom de la technique.
[in]p_renderTargetLa render target pour cette technique.
[in]p_techniqueLa technique de rendu parente.
[in]p_opaqueDit si cette passe de rendu est pour les noeuds opaques.
[in]p_multisamplingLe statut de multiéchantillonnage.

◆ ~RenderTechniquePass()

virtual C3D_API Castor3D::RenderTechniquePass::~RenderTechniquePass ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ CleanupShadowMaps()

virtual C3D_API void Castor3D::RenderTechniquePass::CleanupShadowMaps ( )
pure virtual
Renvoie
Nettoie les maps de'ombres.

Implémenté dans Castor3D::ForwardRenderTechniquePass.

◆ InitialiseShadowMaps()

virtual C3D_API bool Castor3D::RenderTechniquePass::InitialiseShadowMaps ( )
pure virtual
Renvoie
Initialise les maps de'ombres.

Implémenté dans Castor3D::ForwardRenderTechniquePass.

◆ Render()

C3D_API void Castor3D::RenderTechniquePass::Render ( RenderInfo p_info,
bool  p_shadows 
)

Fonction de rendu.

Paramètres
[out]p_infoReçoit les informations de rendu.
[out]p_shadowsDit si la scène a des lumières produisant des ombres.

◆ RenderShadowMaps()

virtual C3D_API void Castor3D::RenderTechniquePass::RenderShadowMaps ( )
pure virtual

Dessine les maps d'ombres.

Implémenté dans Castor3D::ForwardRenderTechniquePass.

◆ UpdateShadowMaps()

virtual C3D_API void Castor3D::RenderTechniquePass::UpdateShadowMaps ( RenderQueueArray p_queues)
pure virtual

Met à jour les maps d'ombres.

Remarques
Récupère les files de rendu, pour mise à jour ultérieure.
Paramètres
[out]p_queuesReçoit les files de rendu nécessaires pour le dessin de la frame.

Implémenté dans Castor3D::ForwardRenderTechniquePass.

Documentation des données membres

◆ m_sceneNode

SceneRenderNode Castor3D::RenderTechniquePass::m_sceneNode
protected

Le noeud de rendu de la scène.

◆ m_target

RenderTarget& Castor3D::RenderTechniquePass::m_target
protected

La cible de rendu parente.

◆ m_technique

RenderTechnique& Castor3D::RenderTechniquePass::m_technique
protected

La technique de rendu parente.


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