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

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

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

Types publics

using DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > >
 

Fonctions membres publiques

virtual C3D_API ~RenderPass ()
 Destructeur. Plus de détails...
 
C3D_API bool initialise (castor::Size const &size)
 Initialise la passe. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie la passe. Plus de détails...
 
C3D_API void update (RenderQueueArray &queues)
 Met à jour la passe de rendu. 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 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...
 
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 void preparePipeline (BlendMode colourBlendMode, BlendMode alphaBlendMode, ComparisonFunc alphaFunc, PassFlags &passFlags, TextureChannels &textureFlags, ProgramFlags &programFlags, SceneFlags &sceneFlags, bool twoSided)
 Prépare le pipeline qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API RenderPipelinegetPipelineFront (BlendMode colourBlendMode, BlendMode alphaBlendMode, ComparisonFunc alphaFunc, PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags) const
 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 colourBlendMode, BlendMode alphaBlendMode, ComparisonFunc alphaFunc, PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags) const
 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 &pass, RenderPipeline &pipeline, Submesh &submesh, Geometry &primitive, AnimatedSkeleton &skeleton)
 Crée un noeud de rendu animé. Plus de détails...
 
C3D_API MorphingRenderNode createMorphingNode (Pass &pass, RenderPipeline &pipeline, Submesh &submesh, Geometry &primitive, AnimatedMesh &mesh)
 Crée un noeud de rendu animé. Plus de détails...
 
C3D_API StaticRenderNode createStaticNode (Pass &pass, RenderPipeline &pipeline, Submesh &submesh, Geometry &primitive)
 Crée un noeud de rendu statique. Plus de détails...
 
C3D_API BillboardRenderNode createBillboardNode (Pass &pass, RenderPipeline &pipeline, BillboardBase &billboard)
 Crée un noeud de rendu statique. Plus de détails...
 
C3D_API void updatePipeline (RenderPipeline &pipeline) const
 Met à jour lee pipeline opaque. 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...
 
bool isOrderIndependent () const
 
SceneUbogetSceneUbo ()
 

Fonctions membres protégées

C3D_API RenderPass (castor::String const &name, Engine &engine, SceneNode const *ignored)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API RenderPass (castor::String const &name, Engine &engine, bool oit, SceneNode const *ignored)
 Constructeur pour les noeuds transparents. Plus de détails...
 
C3D_API PassRenderNode doCreatePassRenderNode (Pass &pass, RenderPipeline &pipeline)
 Crée un noeud de rendu. Plus de détails...
 
C3D_API SceneRenderNode doCreateSceneRenderNode (Scene &scene, RenderPipeline &pipeline)
 Crée un noeud de rendu de scène. Plus de détails...
 
C3D_API ShaderProgramSPtr doGetProgram (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, ComparisonFunc alphaFunc, bool invertNormals) const
 Récupère le programme shader correspondant aux flags donnés. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, VertexBuffer &matrixBuffer, RenderInfo &info) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodeArray const &renderNodes, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodeArray const &renderNodes, VertexBuffer &matrixBuffer, RenderInfo &info) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &matrixBuffer, RenderInfo &info) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &matrixBuffer, RenderInfo &info) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesBones (SkinningRenderNodeArray const &renderNodes, ShaderStorageBuffer &bonesBuffer) const
 Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesBones (SkinningRenderNodeArray const &renderNodes, ShaderStorageBuffer &bonesBuffer, RenderInfo &info) const
 Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des billboards. Plus de détails...
 

Attributs protégés

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_oit { false }
 
SceneUbo m_sceneUbo
 
MatrixUbo m_matrixUbo
 
ModelUbo m_modelUbo
 
ModelMatrixUbo m_modelMatrixUbo
 
BillboardUbo m_billboardUbo
 
SkinningUbo m_skinningUbo
 
MorphingUbo m_morphingUbo
 
RenderPassTimerSPtr m_timer
 

Description détaillée

Classe de base d'une passe de rendu.

Auteur
Sylvain DOREMUS
Version
0.9.0
Date
30/08/2016

Documentation des définitions de type membres

◆ DistanceSortedNodeMap

using castor3d::RenderPass::DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > >

Documentation des constructeurs et destructeur

◆ RenderPass() [1/2]

C3D_API castor3d::RenderPass::RenderPass ( castor::String const &  name,
Engine engine,
SceneNode const *  ignored 
)
protected

Constructeur pour les noeuds opaques.

Paramètres
[in]nameLe nom de la passe.
[in]engineLe moteur.
[in]ignoredLes géométries attachées à ce noeud seront ignorées lors du rendu.

◆ RenderPass() [2/2]

C3D_API castor3d::RenderPass::RenderPass ( castor::String const &  name,
Engine engine,
bool  oit,
SceneNode const *  ignored 
)
protected

Constructeur pour les noeuds transparents.

Paramètres
[in]nameLe nom de la passe.
[in]engineLe moteur.
[in]oitLe statut de rendu indépendant de l'ordre des objets.
[in]ignoredLes géométries attachées à ce noeud seront ignorées lors du rendu.

◆ ~RenderPass()

virtual C3D_API castor3d::RenderPass::~RenderPass ( )
virtual

Destructeur.

Documentation des fonctions membres

◆ cleanup()

C3D_API void castor3d::RenderPass::cleanup ( )

Nettoie la passe.

◆ createBillboardNode()

C3D_API BillboardRenderNode castor3d::RenderPass::createBillboardNode ( Pass pass,
RenderPipeline pipeline,
BillboardBase billboard 
)

Crée un noeud de rendu statique.

Paramètres
[in]passLa passe.
[in]pipelineLe pipeline.
[in]billboardLe billboard.
Renvoie
Le noeud de rendu.

◆ createMorphingNode()

C3D_API MorphingRenderNode castor3d::RenderPass::createMorphingNode ( Pass pass,
RenderPipeline pipeline,
Submesh submesh,
Geometry primitive,
AnimatedMesh mesh 
)

Crée un noeud de rendu animé.

Paramètres
[in]passLa passe.
[in]pipelineLe pipeline.
[in]submeshLe sous-maillage.
[in]primitiveLa géométrie.
[in]meshLe maillage animé.
Renvoie
Le noeud de rendu.

◆ createSkinningNode()

C3D_API SkinningRenderNode castor3d::RenderPass::createSkinningNode ( Pass pass,
RenderPipeline pipeline,
Submesh submesh,
Geometry primitive,
AnimatedSkeleton skeleton 
)

Crée un noeud de rendu animé.

Paramètres
[in]passLa passe.
[in]pipelineLe pipeline.
[in]submeshLe sous-maillage.
[in]primitiveLa géométrie.
[in]skeletonLe squelette animé.
Renvoie
Le noeud de rendu.

◆ createStaticNode()

C3D_API StaticRenderNode castor3d::RenderPass::createStaticNode ( Pass pass,
RenderPipeline pipeline,
Submesh submesh,
Geometry primitive 
)

Crée un noeud de rendu statique.

Paramètres
[in]passLa passe.
[in]pipelineLe pipeline.
[in]submeshLe sous-maillage.
[in]primitiveLa géométrie.
Renvoie
Le noeud de rendu.

◆ doCopyNodesBones() [1/2]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesBones ( SkinningRenderNodeArray const &  renderNodes,
ShaderStorageBuffer bonesBuffer 
) const
protected

Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné.

Paramètres
[in]renderNodesLes noeuds instanciés.
[in]bonesBufferLe tampon de matrices des os.

Référencé par getSceneUbo().

+ Voici le graphe des appelants de cette fonction :

◆ doCopyNodesBones() [2/2]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesBones ( SkinningRenderNodeArray const &  renderNodes,
ShaderStorageBuffer bonesBuffer,
RenderInfo info 
) const
protected

Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné.

Remarques
Les noeuds pour lesquels les matrices sont copiées seront enregistrés dans la liste des noeuds dessinés.
Paramètres
[in]renderNodesLes noeuds instanciés.
[in]bonesBufferLe tampon de matrices des os.
[in,out]infoReçoit les informations de rendu.

◆ doCopyNodesMatrices() [1/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( StaticRenderNodeArray const &  renderNodes,
VertexBuffer matrixBuffer 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Paramètres
[in]renderNodesLes noeuds instanciés.
[in]matrixBufferLe tampon de matrices.

Référencé par getSceneUbo().

+ Voici le graphe des appelants de cette fonction :

◆ doCopyNodesMatrices() [2/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( StaticRenderNodeArray const &  renderNodes,
VertexBuffer matrixBuffer,
RenderInfo info 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Remarques
Les noeuds pour lesquels les matrices sont copiées seront enregistrés dans la liste des noeuds dessinés.
Paramètres
[in]renderNodesLes noeuds instanciés.
[in]matrixBufferLe tampon de matrices.
[in,out]infoReçoit les informations de rendu.

◆ doCopyNodesMatrices() [3/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( SkinningRenderNodeArray const &  renderNodes,
VertexBuffer matrixBuffer 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Paramètres
[in]renderNodesLes noeuds instanciés.
[in]matrixBufferLe tampon de matrices.

◆ doCopyNodesMatrices() [4/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( SkinningRenderNodeArray const &  renderNodes,
VertexBuffer matrixBuffer,
RenderInfo info 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Remarques
Les noeuds pour lesquels les matrices sont copiées seront enregistrés dans la liste des noeuds dessinés.
Paramètres
[in]renderNodesLes noeuds instanciés.
[in]matrixBufferLe tampon de matrices.
[in,out]infoReçoit les informations de rendu.

◆ doCopyNodesMatrices() [5/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( StaticRenderNodeArray const &  renderNodes,
Camera const &  camera,
VertexBuffer matrixBuffer 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Paramètres
[in]renderNodesLes noeuds instanciés.
[in]cameraLa caméra regardant la scène.
[in]matrixBufferLe tampon de matrices.

◆ doCopyNodesMatrices() [6/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( StaticRenderNodeArray const &  renderNodes,
Camera const &  camera,
VertexBuffer matrixBuffer,
RenderInfo info 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Remarques
Les noeuds pour lesquels les matrices sont copiées seront enregistrés dans la liste des noeuds dessinés.
Paramètres
[in]renderNodesLes noeuds instanciés.
[in]cameraLa caméra regardant la scène.
[in]matrixBufferLe tampon de matrices.
[in,out]infoReçoit les informations de rendu.

◆ doCopyNodesMatrices() [7/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( SkinningRenderNodeArray const &  renderNodes,
Camera const &  camera,
VertexBuffer matrixBuffer 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Paramètres
[in]renderNodesLes noeuds instanciés.
[in]cameraLa caméra regardant la scène.
[in]matrixBufferLe tampon de matrices.

◆ doCopyNodesMatrices() [8/8]

C3D_API uint32_t castor3d::RenderPass::doCopyNodesMatrices ( SkinningRenderNodeArray const &  renderNodes,
Camera const &  camera,
VertexBuffer matrixBuffer,
RenderInfo info 
) const
protected

Copie les matrices de noeuds instanciés dans le tampon de matrices donné.

Remarques
Les noeuds pour lesquels les matrices sont copiées seront enregistrés dans la liste des noeuds dessinés.
Paramètres
[in]renderNodesLes noeuds instanciés.
[in]cameraLa caméra regardant la scène.
[in]matrixBufferLe tampon de matrices.
[in,out]infoReçoit les informations de rendu.

◆ doCreatePassRenderNode()

C3D_API PassRenderNode castor3d::RenderPass::doCreatePassRenderNode ( Pass pass,
RenderPipeline pipeline 
)
protected

Crée un noeud de rendu.

Paramètres
[in]passLa passe.
[in]pipelineLe pipeline.
Renvoie
Le noeud de rendu.

Référencé par getSceneUbo().

+ Voici le graphe des appelants de cette fonction :

◆ doCreateSceneRenderNode()

C3D_API SceneRenderNode castor3d::RenderPass::doCreateSceneRenderNode ( Scene scene,
RenderPipeline pipeline 
)
protected

Crée un noeud de rendu de scène.

Paramètres
[in]sceneLa scène.
[in]pipelineLe pipeline.
Renvoie
Le noeud de rendu.

Référencé par getSceneUbo().

+ Voici le graphe des appelants de cette fonction :

◆ doGetProgram()

C3D_API ShaderProgramSPtr castor3d::RenderPass::doGetProgram ( PassFlags const &  passFlags,
TextureChannels const &  textureFlags,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags,
ComparisonFunc  alphaFunc,
bool  invertNormals 
) const
protected

Récupère le programme shader correspondant aux flags 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.
[in]invertNormalsDit si les normales doivent être inversées, dans le programme.

Référencé par getSceneUbo().

+ Voici le graphe des appelants de cette fonction :

◆ doRender() [1/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshStaticRenderNodesByPipelineMap &  nodes) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

Référencé par getSceneUbo().

+ Voici le graphe des appelants de cette fonction :

◆ doRender() [2/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshStaticRenderNodesByPipelineMap &  nodes,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [3/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshStaticRenderNodesByPipelineMap &  nodes,
Camera const &  camera 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.

◆ doRender() [4/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshStaticRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [5/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshStaticRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps,
RenderInfo info 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).
[in,out]infoReçoit les informations de rendu.

◆ doRender() [6/30]

C3D_API void castor3d::RenderPass::doRender ( StaticRenderNodesByPipelineMap &  nodes) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doRender() [7/30]

C3D_API void castor3d::RenderPass::doRender ( StaticRenderNodesByPipelineMap &  nodes,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [8/30]

C3D_API void castor3d::RenderPass::doRender ( StaticRenderNodesByPipelineMap &  nodes,
Camera const &  camera 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.

◆ doRender() [9/30]

C3D_API void castor3d::RenderPass::doRender ( StaticRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [10/30]

C3D_API void castor3d::RenderPass::doRender ( StaticRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps,
RenderInfo info 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).
[in,out]infoReçoit les informations de rendu.

◆ doRender() [11/30]

C3D_API void castor3d::RenderPass::doRender ( SkinningRenderNodesByPipelineMap &  nodes) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doRender() [12/30]

C3D_API void castor3d::RenderPass::doRender ( SkinningRenderNodesByPipelineMap &  nodes,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [13/30]

C3D_API void castor3d::RenderPass::doRender ( SkinningRenderNodesByPipelineMap &  nodes,
Camera const &  camera 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.

◆ doRender() [14/30]

C3D_API void castor3d::RenderPass::doRender ( SkinningRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [15/30]

C3D_API void castor3d::RenderPass::doRender ( SkinningRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps,
RenderInfo info 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).
[in,out]infoReçoit les informations de rendu.

◆ doRender() [16/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshSkinningRenderNodesByPipelineMap &  nodes) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doRender() [17/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshSkinningRenderNodesByPipelineMap &  nodes,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [18/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshSkinningRenderNodesByPipelineMap &  nodes,
Camera const &  camera 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.

◆ doRender() [19/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshSkinningRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [20/30]

C3D_API void castor3d::RenderPass::doRender ( SubmeshSkinningRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps,
RenderInfo info 
) const
protected

Dessine des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).
[in,out]infoReçoit les informations de rendu.

◆ doRender() [21/30]

C3D_API void castor3d::RenderPass::doRender ( MorphingRenderNodesByPipelineMap &  nodes) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doRender() [22/30]

C3D_API void castor3d::RenderPass::doRender ( MorphingRenderNodesByPipelineMap &  nodes,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [23/30]

C3D_API void castor3d::RenderPass::doRender ( MorphingRenderNodesByPipelineMap &  nodes,
Camera const &  camera 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.

◆ doRender() [24/30]

C3D_API void castor3d::RenderPass::doRender ( MorphingRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [25/30]

C3D_API void castor3d::RenderPass::doRender ( MorphingRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps,
RenderInfo info 
) const
protected

Dessine des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).
[in,out]infoReçoit les informations de rendu.

◆ doRender() [26/30]

C3D_API void castor3d::RenderPass::doRender ( BillboardRenderNodesByPipelineMap &  nodes) const
protected

Dessine des billboards.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doRender() [27/30]

C3D_API void castor3d::RenderPass::doRender ( BillboardRenderNodesByPipelineMap &  nodes,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des billboards.

Paramètres
[in]nodesLes noeuds de rendu.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [28/30]

C3D_API void castor3d::RenderPass::doRender ( BillboardRenderNodesByPipelineMap &  nodes,
Camera const &  camera 
) const
protected

Dessine des billboards.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.

◆ doRender() [29/30]

C3D_API void castor3d::RenderPass::doRender ( BillboardRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps 
) const
protected

Dessine des billboards.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).

◆ doRender() [30/30]

C3D_API void castor3d::RenderPass::doRender ( BillboardRenderNodesByPipelineMap &  nodes,
Camera const &  camera,
ShadowMapLightTypeArray shadowMaps,
RenderInfo info 
) const
protected

Dessine des billboards.

Paramètres
[in]nodesLes noeuds de rendu.
[in]cameraLa caméra regardant la scène.
[in]shadowMapsLes textures de profondeur (ombres et autres).
[in,out]infoReçoit les informations de rendu.

◆ getGeometryShaderSource()

C3D_API glsl::Shader castor3d::RenderPass::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.

◆ getPipelineBack()

C3D_API RenderPipeline* castor3d::RenderPass::getPipelineBack ( BlendMode  colourBlendMode,
BlendMode  alphaBlendMode,
ComparisonFunc  alphaFunc,
PassFlags const &  passFlags,
TextureChannels const &  textureFlags,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags 
) const

Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces arrière supprimées.

Paramètres
[in]colourBlendModeLe mode de mélange de couleurs.
[in]alphaBlendModeLe mode de mélange alpha.
[in]alphaFuncLa fonction de test alpha.
[in]passFlagsUne combinaison de PassFlag.
[in]textureFlagsUne combinaison de TextureChannel.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
Renvoie
Le pipeline prêt à l'utilisation, nullptr si aucun pipeline n'est disponible pour la configuration voulue.

◆ getPipelineFront()

C3D_API RenderPipeline* castor3d::RenderPass::getPipelineFront ( BlendMode  colourBlendMode,
BlendMode  alphaBlendMode,
ComparisonFunc  alphaFunc,
PassFlags const &  passFlags,
TextureChannels const &  textureFlags,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags 
) const

Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces avant supprimées.

Paramètres
[in]colourBlendModeLe mode de mélange de couleurs.
[in]alphaBlendModeLe mode de mélange alpha.
[in]alphaFuncLa fonction de test alpha.
[in]passFlagsUne combinaison de PassFlag.
[in]textureFlagsUne combinaison de TextureChannel.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
Renvoie
Le pipeline prêt à l'utilisation, nullptr si aucun pipeline n'est disponible pour la configuration voulue.

◆ getPixelShaderSource()

C3D_API glsl::Shader castor3d::RenderPass::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.

◆ getSceneUbo()

SceneUbo& castor3d::RenderPass::getSceneUbo ( )
inline
Renvoie
L'UBO de la scène.

Références C3D_API, doCopyNodesBones(), doCopyNodesMatrices(), doCreatePassRenderNode(), doCreateSceneRenderNode(), doGetProgram(), doRender(), et m_sceneUbo.

+ Voici le graphe d'appel pour cette fonction :

◆ getVertexShaderSource()

C3D_API glsl::Shader castor3d::RenderPass::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::RenderPass::initialise ( castor::Size const &  size)

Initialise la passe.

Paramètres
sizeLes dimensions voulues pour la passe.
Renvoie
true si tout s'est bien passé.

◆ isOrderIndependent()

bool castor3d::RenderPass::isOrderIndependent ( ) const
inline
Renvoie
Le statut d'échantillonnage.

Références m_oit.

◆ preparePipeline()

C3D_API void castor3d::RenderPass::preparePipeline ( BlendMode  colourBlendMode,
BlendMode  alphaBlendMode,
ComparisonFunc  alphaFunc,
PassFlags &  passFlags,
TextureChannels &  textureFlags,
ProgramFlags &  programFlags,
SceneFlags &  sceneFlags,
bool  twoSided 
)

Prépare le pipeline qui correspond aux indicateurs donnés.

Paramètres
[in]colourBlendModeLe mode de mélange de couleurs.
[in]alphaBlendModeLe mode de mélange alpha.
[in]alphaFuncLa fonction de test alpha.
[in]passFlagsUne combinaison de PassFlag.
[in]textureFlagsUne combinaison de TextureChannel.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
[in]twoSidedDit si la passe est sur les deux faces.

◆ update()

C3D_API void castor3d::RenderPass::update ( RenderQueueArray queues)

Met à jour la passe de rendu.

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

◆ updateFlags()

C3D_API void castor3d::RenderPass::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.

◆ updatePipeline()

C3D_API void castor3d::RenderPass::updatePipeline ( RenderPipeline pipeline) const

Met à jour lee pipeline opaque.

Paramètres
[in]pipelineLe pipeline de rendu.

Documentation des données membres

◆ m_backPipelines

std::map< PipelineFlags, RenderPipelineUPtr > castor3d::RenderPass::m_backPipelines
protected

Les pipelines de rendu utilisés pour dessiner les faces avant noeuds.

◆ m_billboardUbo

BillboardUbo castor3d::RenderPass::m_billboardUbo
protected

Le tampon d'uniformes contenant les données de billboard.

◆ m_frontPipelines

std::map< PipelineFlags, RenderPipelineUPtr > castor3d::RenderPass::m_frontPipelines
protected

Les pipelines de rendu utilisés pour dessiner les faces arrière des noeuds.

◆ m_geometryBuffers

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

Les tampons de géométries.

◆ m_matrixUbo

MatrixUbo castor3d::RenderPass::m_matrixUbo
protected

Le tampon d'uniformes contenant les données de matrices.

◆ m_modelMatrixUbo

ModelMatrixUbo castor3d::RenderPass::m_modelMatrixUbo
protected

Le tampon d'uniformes contenant les données de matrices.

◆ m_modelUbo

ModelUbo castor3d::RenderPass::m_modelUbo
protected

Le tampon d'uniformes contenant les données du modèle.

◆ m_morphingUbo

MorphingUbo castor3d::RenderPass::m_morphingUbo
protected

Le tampon d'uniformes contenant les données d'animation de morphing.

◆ m_oit

bool castor3d::RenderPass::m_oit { false }
protected

Dit si la technique utilise le rendu indépendant de l'ordre.

Référencé par isOrderIndependent().

◆ m_opaque

bool castor3d::RenderPass::m_opaque { false }
protected

Dit si cette passe est utilisée pour les noeuds de rendu opaques.

◆ m_renderQueue

RenderQueue castor3d::RenderPass::m_renderQueue
protected

La file de rendu.

◆ m_renderSystem

RenderSystem& castor3d::RenderPass::m_renderSystem
protected

Le render system.

◆ m_sceneUbo

SceneUbo castor3d::RenderPass::m_sceneUbo
protected

Le tampon d'uniformes contenant les données de scène.

Référencé par getSceneUbo().

◆ m_skinningUbo

SkinningUbo castor3d::RenderPass::m_skinningUbo
protected

Le tampon d'uniformes contenant les données d'animation de skinning.

◆ m_timer

RenderPassTimerSPtr castor3d::RenderPass::m_timer
protected

Le timer de la passe de rendu.


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