Castor3D  0.11.0
Multiplatform 3D engine
Classes | Types publics | Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::SceneRenderPassabstract
Graphe d'héritage de castor3d::SceneRenderPass:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::SceneRenderPass:
Collaboration graph
[légende]

Classes

struct  VertexInputs
 
struct  VertexOutputs
 

Types publics

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

Fonctions membres publiques

virtual C3D_API ~SceneRenderPass ()=default
 Destructeur. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device, castor::Size const &size)
 Initialise la passe. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device, castor::Size const &size, RenderPassTimer &timer, uint32_t index)
 Initialise la passe. Plus de détails...
 
C3D_API void cleanup (RenderDevice const &device)
 Nettoie la passe. Plus de détails...
 
C3D_API void update (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU. Plus de détails...
 
C3D_API ShaderPtr getVertexShaderSource (PipelineFlags const &flags) const
 Récupère le source du vertex shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API ShaderPtr getPixelShaderSource (PipelineFlags const &flags) const
 Récupère le source du pixel shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API ShaderPtr getGeometryShaderSource (PipelineFlags const &flags) const
 Récupère le source du geometry shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API PipelineFlags prepareBackPipeline (BlendMode colourBlendMode, BlendMode alphaBlendMode, VkCompareOp alphaFunc, PassFlags const &passFlags, TextureFlagsArray const &textures, uint32_t heightMapIndex, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling. Plus de détails...
 
C3D_API void prepareBackPipeline (PipelineFlags &flags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling. Plus de détails...
 
C3D_API PipelineFlags prepareFrontPipeline (BlendMode colourBlendMode, BlendMode alphaBlendMode, VkCompareOp alphaFunc, PassFlags const &passFlags, TextureFlagsArray const &textures, uint32_t heightMapIndex, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling. Plus de détails...
 
C3D_API void prepareFrontPipeline (PipelineFlags &flags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling. Plus de détails...
 
C3D_API RenderPipelinegetPipelineFront (PipelineFlags flags) 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 (PipelineFlags flags) 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)
 Met à jour lee pipeline opaque. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, BillboardRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud de billboard. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, MorphingRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud de morphing. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, SkinningRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud de skinning. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, StaticRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud statique. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshSkinninRenderNodesByPassMap &nodes)
 Initialise l'ensemble de descripteurs d'UBO pour des noeuds de skining. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshStaticRenderNodesByPassMap &nodes)
 Initialise l'ensemble de descripteurs d'UBO pour des noeuds statiques. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, BillboardRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud de billboard. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, MorphingRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud de morphing. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, SkinningRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud de skinning. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, StaticRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud statique. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshSkinninRenderNodesByPassMap &nodes, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour des noeuds de skinning. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshStaticRenderNodesByPassMap &nodes, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour des noeuds statiques. Plus de détails...
 
C3D_API void updateFlags (PipelineFlags &flags) const
 Modifie les indicateurs donnés pour le faire correspondre au pré-requis de la passe de rendus. Plus de détails...
 
virtual C3D_API TextureFlags getTexturesMask () const
 
bool isOrderIndependent () const
 
SceneCuller const & getCuller () const
 
SceneCullergetCuller ()
 
SceneUbogetSceneUbo ()
 
SceneUbo const & getSceneUbo () const
 
MatrixUbogetMatrixUbo () const
 
ashes::CommandBuffer const & getCommandBuffer () const
 
bool hasNodes () const
 
ashes::RenderPass const & getRenderPass () const
 
RenderPassTimer const & getTimer () const
 
RenderPassTimergetTimer ()
 
uint32_t getPipelinesCount () const
 
uint32_t getInstanceMult () const
 
bool isDirty () const
 
bool forceTwoSided () const
 

Fonctions membres publiques statiques

static C3D_API ashes::PipelineColorBlendStateCreateInfo createBlendState (BlendMode colourBlendMode, BlendMode alphaBlendMode, uint32_t attachesCount)
 Crée un état de mélange correspondant aux modes de mélange donnés. Plus de détails...
 

Fonctions membres protégées

C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, RenderMode mode, bool oit, bool forceTwoSided, SceneNode const *ignored, uint32_t instanceMult)
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, uint32_t instanceMult=1u)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, bool oit, uint32_t instanceMult=1u)
 Constructeur pour les noeuds transparents. Plus de détails...
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, SceneNode const *ignored, uint32_t instanceMult=1u)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, bool oit, SceneNode const *ignored, uint32_t instanceMult=1u)
 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 (PipelineFlags const &flags) const
 Récupère le programme shader correspondant aux indicateurs donnés. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &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 (SkinningRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &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 (SkinningRenderNodePtrArray const &renderNodes, ShaderBuffer &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 (SkinningRenderNodePtrArray const &renderNodes, ShaderBuffer &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 doUpdate (SubmeshStaticRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (SubmeshStaticRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (StaticRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (StaticRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (SkinningRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (SkinningRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (SubmeshSkinningRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (SubmeshSkinningRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (MorphingRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (MorphingRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (BillboardRenderNodesPtrByPipelineMap &nodes)
 Met à jour des billboards. Plus de détails...
 
C3D_API void doUpdate (BillboardRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des billboards. Plus de détails...
 
virtual C3D_API void doUpdate (RenderQueueArray &queues)
 Met les données spécifiques. Plus de détails...
 
virtual C3D_API void doUpdateUbos (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU. Plus de détails...
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > & doGetFrontPipelines ()
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > & doGetBackPipelines ()
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > const & doGetFrontPipelines () const
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > const & doGetBackPipelines () const
 
virtual C3D_API void doPrepareFrontPipeline (ShaderProgramSPtr program, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts, PipelineFlags const &flags)
 Prépare le pipeline de rendu, en supprimant les faces avant. Plus de détails...
 
virtual C3D_API void doPrepareBackPipeline (ShaderProgramSPtr program, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts, PipelineFlags const &flags)
 Prépare le pipeline de rendu, en supprimant les faces arrière. Plus de détails...
 
virtual C3D_API ashes::VkDescriptorSetLayoutBindingArray doCreateUboBindings (PipelineFlags const &flags) const
 Crée les attaches de layout de descripteurs communs pour les UBO. Plus de détails...
 
virtual C3D_API ashes::VkDescriptorSetLayoutBindingArray doCreateTextureBindings (PipelineFlags const &flags) const =0
 Crée les attaches de layout de descripteurs communs pour les textures. Plus de détails...
 
virtual C3D_API ashes::PipelineDepthStencilStateCreateInfo doCreateDepthStencilState (PipelineFlags const &flags) const =0
 Crée l'attache de profondeur et stencil. Plus de détails...
 
virtual C3D_API ashes::PipelineColorBlendStateCreateInfo doCreateBlendState (PipelineFlags const &flags) const =0
 Crée l'attache de mélange des couleurs. Plus de détails...
 
virtual C3D_API void doCleanup (RenderDevice const &device)=0
 Nettoie la passe. Plus de détails...
 
virtual C3D_API bool doInitialise (RenderDevice const &device, castor::Size const &size)=0
 Initialise la passe. Plus de détails...
 
virtual C3D_API void doFillUboDescriptor (ashes::DescriptorSetLayout const &layout, BillboardListRenderNode &node)=0
 Initialise l'ensemble de descripteurs pour un noeud de billboard. Plus de détails...
 
virtual C3D_API void doFillUboDescriptor (ashes::DescriptorSetLayout const &layout, SubmeshRenderNode &node)=0
 Initialise l'ensemble de descripteurs pour un noeud de morphing. Plus de détails...
 
virtual C3D_API void doFillTextureDescriptor (ashes::DescriptorSetLayout const &layout, uint32_t &index, BillboardListRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)=0
 Initialise l'ensemble de descripteurs pour un noeud de billboard. Plus de détails...
 
virtual C3D_API void doFillTextureDescriptor (ashes::DescriptorSetLayout const &layout, uint32_t &index, SubmeshRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)=0
 Initialise l'ensemble de descripteurs pour un noeud de morphing. Plus de détails...
 

Attributs protégés

RenderSystemm_renderSystem
 
MatrixUbom_matrixUbo
 
SceneCullerm_culler
 
RenderQueue m_renderQueue
 
castor::String m_category
 
RenderMode m_mode { RenderMode::eBoth }
 
bool m_oit { false }
 
bool m_forceTwoSided { false }
 
bool m_isDirty { true }
 
SceneUbo m_sceneUbo
 
ashes::RenderPassPtr m_renderPass
 
RenderPassTimerm_timer { nullptr }
 
uint32_t m_index { 0u }
 
RenderPassTimerSPtr m_ownTimer
 
castor::Size m_size
 
uint32_t const m_instanceMult { 1u }
 
std::map< size_t, UniformBufferOffsetT< ModelInstancesUboConfiguration > > m_modelsInstances
 

Documentation des définitions de type membres

◆ DistanceSortedNodeMap

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

Documentation des constructeurs et destructeur

◆ SceneRenderPass() [1/5]

C3D_API castor3d::SceneRenderPass::SceneRenderPass ( castor::String const &  category,
castor::String const &  name,
Engine engine,
MatrixUbo matrixUbo,
SceneCuller culler,
RenderMode  mode,
bool  oit,
bool  forceTwoSided,
SceneNode const *  ignored,
uint32_t  instanceMult 
)
protected

◆ SceneRenderPass() [2/5]

C3D_API castor3d::SceneRenderPass::SceneRenderPass ( castor::String const &  category,
castor::String const &  name,
Engine engine,
MatrixUbo matrixUbo,
SceneCuller culler,
uint32_t  instanceMult = 1u 
)
protected

Constructeur pour les noeuds opaques.

Paramètres
[in]categoryLa catégorie de la passe.
[in]nameLe nom de la passe.
[in]engineLe moteur.
[in]matrixUboL'UBO des matrices de la scène.
[in]cullerLe culler pour cette passe.
[in]instanceMultLe multiplicateur d'instances d'objets.

◆ SceneRenderPass() [3/5]

C3D_API castor3d::SceneRenderPass::SceneRenderPass ( castor::String const &  category,
castor::String const &  name,
Engine engine,
MatrixUbo matrixUbo,
SceneCuller culler,
bool  oit,
uint32_t  instanceMult = 1u 
)
protected

Constructeur pour les noeuds transparents.

Paramètres
[in]categoryLa catégorie de la passe.
[in]nameLe nom de la passe.
[in]engineLe moteur.
[in]matrixUboL'UBO des matrices de la scène.
[in]cullerLe culler pour cette passe.
[in]oitLe statut de rendu indépendant de l'ordre des objets.
[in]instanceMultLe multiplicateur d'instances d'objets.

◆ SceneRenderPass() [4/5]

C3D_API castor3d::SceneRenderPass::SceneRenderPass ( castor::String const &  category,
castor::String const &  name,
Engine engine,
MatrixUbo matrixUbo,
SceneCuller culler,
SceneNode const *  ignored,
uint32_t  instanceMult = 1u 
)
protected

Constructeur pour les noeuds opaques.

Paramètres
[in]categoryLa catégorie de la passe.
[in]nameLe nom de la passe.
[in]engineLe moteur.
[in]matrixUboL'UBO des matrices de la scène.
[in]cullerLe culler pour cette passe.
[in]ignoredLes géométries attachées à ce noeud seront ignorées lors du rendu.
[in]instanceMultLe multiplicateur d'instances d'objets.

◆ SceneRenderPass() [5/5]

C3D_API castor3d::SceneRenderPass::SceneRenderPass ( castor::String const &  category,
castor::String const &  name,
Engine engine,
MatrixUbo matrixUbo,
SceneCuller culler,
bool  oit,
SceneNode const *  ignored,
uint32_t  instanceMult = 1u 
)
protected

Constructeur pour les noeuds transparents.

Paramètres
[in]categoryLa catégorie de la passe.
[in]nameLe nom de la passe.
[in]engineLe moteur.
[in]matrixUboL'UBO des matrices de la scène.
[in]cullerLe culler pour cette passe.
[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.
[in]instanceMultLe multiplicateur d'instances d'objets.

◆ ~SceneRenderPass()

virtual C3D_API castor3d::SceneRenderPass::~SceneRenderPass ( )
virtualdefault

Destructeur.

Documentation des fonctions membres

◆ cleanup()

C3D_API void castor3d::SceneRenderPass::cleanup ( RenderDevice const &  device)

Nettoie la passe.

Paramètres
deviceLe device actuel.

◆ createBillboardNode()

C3D_API BillboardRenderNode castor3d::SceneRenderPass::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.

◆ createBlendState()

static C3D_API ashes::PipelineColorBlendStateCreateInfo castor3d::SceneRenderPass::createBlendState ( BlendMode  colourBlendMode,
BlendMode  alphaBlendMode,
uint32_t  attachesCount 
)
static

Crée un état de mélange correspondant aux modes de mélange donnés.

Paramètres
[in]colourBlendModeLe mode de mélange couleurs.
[in]alphaBlendModeLe mode de mélange alpha.
[in]attachesCountLe nombre d'attaches de mélange voulues.
Renvoie

◆ createMorphingNode()

C3D_API MorphingRenderNode castor3d::SceneRenderPass::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::SceneRenderPass::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::SceneRenderPass::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.

◆ doCleanup()

virtual C3D_API void castor3d::SceneRenderPass::doCleanup ( RenderDevice const &  device)
protectedpure virtual

◆ doCopyNodesBones() [1/2]

C3D_API uint32_t castor3d::SceneRenderPass::doCopyNodesBones ( SkinningRenderNodePtrArray const &  renderNodes,
ShaderBuffer 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.

◆ doCopyNodesBones() [2/2]

C3D_API uint32_t castor3d::SceneRenderPass::doCopyNodesBones ( SkinningRenderNodePtrArray const &  renderNodes,
ShaderBuffer 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/4]

C3D_API uint32_t castor3d::SceneRenderPass::doCopyNodesMatrices ( StaticRenderNodePtrArray const &  renderNodes,
std::vector< InstantiationData > &  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() [2/4]

C3D_API uint32_t castor3d::SceneRenderPass::doCopyNodesMatrices ( StaticRenderNodePtrArray const &  renderNodes,
std::vector< InstantiationData > &  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/4]

C3D_API uint32_t castor3d::SceneRenderPass::doCopyNodesMatrices ( SkinningRenderNodePtrArray const &  renderNodes,
std::vector< InstantiationData > &  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/4]

C3D_API uint32_t castor3d::SceneRenderPass::doCopyNodesMatrices ( SkinningRenderNodePtrArray const &  renderNodes,
std::vector< InstantiationData > &  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.

◆ doCreateBlendState()

virtual C3D_API ashes::PipelineColorBlendStateCreateInfo castor3d::SceneRenderPass::doCreateBlendState ( PipelineFlags const &  flags) const
protectedpure virtual

Crée l'attache de mélange des couleurs.

Paramètres
[in]flagsLes indicateurs de pipeline.

◆ doCreateDepthStencilState()

virtual C3D_API ashes::PipelineDepthStencilStateCreateInfo castor3d::SceneRenderPass::doCreateDepthStencilState ( PipelineFlags const &  flags) const
protectedpure virtual

Crée l'attache de profondeur et stencil.

Paramètres
[in]flagsLes indicateurs de pipeline.

◆ doCreatePassRenderNode()

C3D_API PassRenderNode castor3d::SceneRenderPass::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.

◆ doCreateSceneRenderNode()

C3D_API SceneRenderNode castor3d::SceneRenderPass::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.

◆ doCreateTextureBindings()

virtual C3D_API ashes::VkDescriptorSetLayoutBindingArray castor3d::SceneRenderPass::doCreateTextureBindings ( PipelineFlags const &  flags) const
protectedpure virtual

Crée les attaches de layout de descripteurs communs pour les textures.

Paramètres
[in]flagsLes indicateurs de pipeline.

Implémenté dans castor3d::RenderTechniquePass, et castor3d::ShadowMapPass.

◆ doCreateUboBindings()

virtual C3D_API ashes::VkDescriptorSetLayoutBindingArray castor3d::SceneRenderPass::doCreateUboBindings ( PipelineFlags const &  flags) const
protectedvirtual

Crée les attaches de layout de descripteurs communs pour les UBO.

Paramètres
[in]flagsLes indicateurs de pipeline.

Réimplémentée dans castor3d::RenderTechniquePass.

◆ doFillTextureDescriptor() [1/2]

virtual C3D_API void castor3d::SceneRenderPass::doFillTextureDescriptor ( ashes::DescriptorSetLayout const &  layout,
uint32_t &  index,
BillboardListRenderNode node,
ShadowMapLightTypeArray const &  shadowMaps 
)
protectedpure virtual

Initialise l'ensemble de descripteurs pour un noeud de billboard.

Paramètres
[in]layoutLe layout des descripteurs.
[in,out]indexL'indice de la texture, mis à jour au prochain disponible.
[in]nodeLe noeud.
[in]shadowMapsLes shadow maps.

◆ doFillTextureDescriptor() [2/2]

virtual C3D_API void castor3d::SceneRenderPass::doFillTextureDescriptor ( ashes::DescriptorSetLayout const &  layout,
uint32_t &  index,
SubmeshRenderNode node,
ShadowMapLightTypeArray const &  shadowMaps 
)
protectedpure virtual

Initialise l'ensemble de descripteurs pour un noeud de morphing.

Paramètres
[in]layoutLe layout des descripteurs.
[in,out]indexL'indice de la texture, mis à jour au prochain disponible.
[in]nodeLe noeud.
[in]shadowMapsLes shadow maps.

◆ doFillUboDescriptor() [1/2]

virtual C3D_API void castor3d::SceneRenderPass::doFillUboDescriptor ( ashes::DescriptorSetLayout const &  layout,
BillboardListRenderNode node 
)
protectedpure virtual

Initialise l'ensemble de descripteurs pour un noeud de billboard.

Paramètres
[in]layoutLe layout des descripteurs.
[in]nodeLe noeud.

◆ doFillUboDescriptor() [2/2]

virtual C3D_API void castor3d::SceneRenderPass::doFillUboDescriptor ( ashes::DescriptorSetLayout const &  layout,
SubmeshRenderNode node 
)
protectedpure virtual

Initialise l'ensemble de descripteurs pour un noeud de morphing.

Paramètres
[in]layoutLe layout des descripteurs.
[in]nodeLe noeud.

◆ doGetBackPipelines() [1/2]

C3D_API std::map< PipelineFlags, RenderPipelineUPtr >& castor3d::SceneRenderPass::doGetBackPipelines ( )
protected
Renvoie
La liste des pipelines back culled.

◆ doGetBackPipelines() [2/2]

C3D_API std::map< PipelineFlags, RenderPipelineUPtr > const& castor3d::SceneRenderPass::doGetBackPipelines ( ) const
protected
Renvoie
La liste des pipelines back culled.

◆ doGetFrontPipelines() [1/2]

C3D_API std::map< PipelineFlags, RenderPipelineUPtr >& castor3d::SceneRenderPass::doGetFrontPipelines ( )
protected
Renvoie
La liste des pipelines front culled.

◆ doGetFrontPipelines() [2/2]

C3D_API std::map< PipelineFlags, RenderPipelineUPtr > const& castor3d::SceneRenderPass::doGetFrontPipelines ( ) const
protected
Renvoie
La liste des pipelines front culled.

◆ doGetProgram()

C3D_API ShaderProgramSPtr castor3d::SceneRenderPass::doGetProgram ( PipelineFlags const &  flags) const
protected

Récupère le programme shader correspondant aux indicateurs donnés.

Paramètres
[in]flagsLes indicateurs de pipeline.

◆ doInitialise()

virtual C3D_API bool castor3d::SceneRenderPass::doInitialise ( RenderDevice const &  device,
castor::Size const &  size 
)
protectedpure virtual

Initialise la passe.

Paramètres
[in]deviceLe device GPU.
sizeLes dimensions voulues pour la passe.
Renvoie
true si tout s'est bien passé.

◆ doPrepareBackPipeline()

virtual C3D_API void castor3d::SceneRenderPass::doPrepareBackPipeline ( ShaderProgramSPtr  program,
ashes::PipelineVertexInputStateCreateInfoCRefArray const &  layouts,
PipelineFlags const &  flags 
)
protectedvirtual

Prépare le pipeline de rendu, en supprimant les faces arrière.

Paramètres
[in]programLe programme.
[in]layoutsLes layouts des tampons de sommets.
[in]flagsLes indicateurs de pipeline.

◆ doPrepareFrontPipeline()

virtual C3D_API void castor3d::SceneRenderPass::doPrepareFrontPipeline ( ShaderProgramSPtr  program,
ashes::PipelineVertexInputStateCreateInfoCRefArray const &  layouts,
PipelineFlags const &  flags 
)
protectedvirtual

Prépare le pipeline de rendu, en supprimant les faces avant.

Paramètres
[in]programLe programme.
[in]layoutsLes layouts des tampons de sommets.
[in]flagsLes indicateurs de pipeline.

◆ doUpdate() [1/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( SubmeshStaticRenderNodesPtrByPipelineMap &  nodes)
protected

Met à jour des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doUpdate() [2/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( SubmeshStaticRenderNodesPtrByPipelineMap &  nodes,
RenderInfo info 
)
protected

Met à jour des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in,out]infoReçoit les informations de rendu.

◆ doUpdate() [3/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( StaticRenderNodesPtrByPipelineMap &  nodes)
protected

Met à jour des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doUpdate() [4/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( StaticRenderNodesPtrByPipelineMap &  nodes,
RenderInfo info 
)
protected

Met à jour des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in,out]infoReçoit les informations de rendu.

◆ doUpdate() [5/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( SkinningRenderNodesPtrByPipelineMap &  nodes)
protected

Met à jour des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doUpdate() [6/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( SkinningRenderNodesPtrByPipelineMap &  nodes,
RenderInfo info 
)
protected

Met à jour des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in,out]infoReçoit les informations de rendu.

◆ doUpdate() [7/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( SubmeshSkinningRenderNodesPtrByPipelineMap &  nodes)
protected

Met à jour des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doUpdate() [8/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( SubmeshSkinningRenderNodesPtrByPipelineMap &  nodes,
RenderInfo info 
)
protected

Met à jour des sous maillages instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in,out]infoReçoit les informations de rendu.

◆ doUpdate() [9/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( MorphingRenderNodesPtrByPipelineMap &  nodes)
protected

Met à jour des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doUpdate() [10/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( MorphingRenderNodesPtrByPipelineMap &  nodes,
RenderInfo info 
)
protected

Met à jour des sous maillages non instanciés.

Paramètres
[in]nodesLes noeuds de rendu.
[in,out]infoReçoit les informations de rendu.

◆ doUpdate() [11/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( BillboardRenderNodesPtrByPipelineMap &  nodes)
protected

Met à jour des billboards.

Paramètres
[in]nodesLes noeuds de rendu.

◆ doUpdate() [12/13]

C3D_API void castor3d::SceneRenderPass::doUpdate ( BillboardRenderNodesPtrByPipelineMap &  nodes,
RenderInfo info 
)
protected

Met à jour des billboards.

Paramètres
[in]nodesLes noeuds de rendu.
[in,out]infoReçoit les informations de rendu.

◆ doUpdate() [13/13]

virtual C3D_API void castor3d::SceneRenderPass::doUpdate ( RenderQueueArray queues)
protectedvirtual

Met les données spécifiques.

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.

◆ doUpdateUbos()

virtual C3D_API void castor3d::SceneRenderPass::doUpdateUbos ( CpuUpdater updater)
protectedvirtual

Met à jour la passe de rendu, au niveau CPU.

Paramètres
[in,out]updaterLes données d'update.

◆ forceTwoSided()

bool castor3d::SceneRenderPass::forceTwoSided ( ) const
inline

Références m_forceTwoSided.

◆ getCommandBuffer()

ashes::CommandBuffer const& castor3d::SceneRenderPass::getCommandBuffer ( ) const
inline

Références castor3d::RenderQueue::getCommandBuffer(), et m_renderQueue.

Voici le graphe d'appel pour cette fonction :

◆ getCuller() [1/2]

SceneCuller const& castor3d::SceneRenderPass::getCuller ( ) const
inline

Références m_culler.

◆ getCuller() [2/2]

SceneCuller& castor3d::SceneRenderPass::getCuller ( )
inline

Références m_culler.

◆ getGeometryShaderSource()

C3D_API ShaderPtr castor3d::SceneRenderPass::getGeometryShaderSource ( PipelineFlags const &  flags) const

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

Paramètres
[in]flagsLes indicateurs de pipeline.

◆ getInstanceMult()

uint32_t castor3d::SceneRenderPass::getInstanceMult ( ) const
inline

Références m_instanceMult.

◆ getMatrixUbo()

MatrixUbo& castor3d::SceneRenderPass::getMatrixUbo ( ) const
inline

Références m_matrixUbo.

◆ getPipelineBack()

C3D_API RenderPipeline* castor3d::SceneRenderPass::getPipelineBack ( PipelineFlags  flags) const

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

Paramètres
[in]flagsLes indicateurs du pipeline.
Renvoie
Le pipeline prêt à l'utilisation, nullptr si aucun pipeline n'est disponible pour la configuration voulue.

◆ getPipelineFront()

C3D_API RenderPipeline* castor3d::SceneRenderPass::getPipelineFront ( PipelineFlags  flags) const

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

Paramètres
[in]flagsLes indicateurs du pipeline.
Renvoie
Le pipeline prêt à l'utilisation, nullptr si aucun pipeline n'est disponible pour la configuration voulue.

◆ getPipelinesCount()

uint32_t castor3d::SceneRenderPass::getPipelinesCount ( ) const
inline

◆ getPixelShaderSource()

C3D_API ShaderPtr castor3d::SceneRenderPass::getPixelShaderSource ( PipelineFlags const &  flags) const

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

Paramètres
[in]flagsLes indicateurs de pipeline.

◆ getRenderPass()

ashes::RenderPass const& castor3d::SceneRenderPass::getRenderPass ( ) const
inline

Références m_renderPass.

◆ getSceneUbo() [1/2]

SceneUbo& castor3d::SceneRenderPass::getSceneUbo ( )
inline

Références m_sceneUbo.

◆ getSceneUbo() [2/2]

SceneUbo const& castor3d::SceneRenderPass::getSceneUbo ( ) const
inline

Références m_sceneUbo.

◆ getTexturesMask()

virtual C3D_API TextureFlags castor3d::SceneRenderPass::getTexturesMask ( ) const
virtual

◆ getTimer() [1/2]

RenderPassTimer const& castor3d::SceneRenderPass::getTimer ( ) const
inline

Références m_timer.

◆ getTimer() [2/2]

RenderPassTimer& castor3d::SceneRenderPass::getTimer ( )
inline

Références m_timer.

◆ getVertexShaderSource()

C3D_API ShaderPtr castor3d::SceneRenderPass::getVertexShaderSource ( PipelineFlags const &  flags) const

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

Paramètres
[in]flagsLes indicateurs de pipeline.

◆ hasNodes()

bool castor3d::SceneRenderPass::hasNodes ( ) const
inline

Références castor3d::RenderQueue::hasNodes(), et m_renderQueue.

Voici le graphe d'appel pour cette fonction :

◆ initialise() [1/2]

C3D_API bool castor3d::SceneRenderPass::initialise ( RenderDevice const &  device,
castor::Size const &  size 
)

Initialise la passe.

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

◆ initialise() [2/2]

C3D_API bool castor3d::SceneRenderPass::initialise ( RenderDevice const &  device,
castor::Size const &  size,
RenderPassTimer timer,
uint32_t  index 
)

Initialise la passe.

Paramètres
deviceLe device actuel.
sizeLes dimensions voulues pour la passe.
timerLe timer parent.
indexL'indice de la passe, dans le parent.
Renvoie
true si tout s'est bien passé.

◆ initialiseTextureDescriptor() [1/6]

C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
BillboardRenderNode node,
ShadowMapLightTypeArray const &  shadowMaps 
)

Initialise l'ensemble de descripteurs de textures pour un noeud de billboard.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.
[in]shadowMapsLes shadow maps.

◆ initialiseTextureDescriptor() [2/6]

C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
MorphingRenderNode node,
ShadowMapLightTypeArray const &  shadowMaps 
)

Initialise l'ensemble de descripteurs de textures pour un noeud de morphing.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.
[in]shadowMapsLes shadow maps.

◆ initialiseTextureDescriptor() [3/6]

C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
SkinningRenderNode node,
ShadowMapLightTypeArray const &  shadowMaps 
)

Initialise l'ensemble de descripteurs de textures pour un noeud de skinning.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLes noeud.
[in]shadowMapsLes shadow maps.

◆ initialiseTextureDescriptor() [4/6]

C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
StaticRenderNode node,
ShadowMapLightTypeArray const &  shadowMaps 
)

Initialise l'ensemble de descripteurs de textures pour un noeud statique.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.
[in]shadowMapsLes shadow maps.

◆ initialiseTextureDescriptor() [5/6]

C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
SubmeshSkinninRenderNodesByPassMap &  nodes,
ShadowMapLightTypeArray const &  shadowMaps 
)

Initialise l'ensemble de descripteurs de textures pour des noeuds de skinning.

Paramètres
[in]descriptorPoolLe pool.
[in]nodesLes noeuds.
[in]shadowMapsLes shadow maps.

◆ initialiseTextureDescriptor() [6/6]

C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
SubmeshStaticRenderNodesByPassMap &  nodes,
ShadowMapLightTypeArray const &  shadowMaps 
)

Initialise l'ensemble de descripteurs de textures pour des noeuds statiques.

Paramètres
[in]descriptorPoolLe pool.
[in]nodesLes noeuds.
[in]shadowMapsLes shadow maps.

◆ initialiseUboDescriptor() [1/6]

C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
BillboardRenderNode node 
)

Initialise l'ensemble de descripteurs d'UBO pour un noeud de billboard.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.

◆ initialiseUboDescriptor() [2/6]

C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
MorphingRenderNode node 
)

Initialise l'ensemble de descripteurs d'UBO pour un noeud de morphing.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.

◆ initialiseUboDescriptor() [3/6]

C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
SkinningRenderNode node 
)

Initialise l'ensemble de descripteurs d'UBO pour un noeud de skinning.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.

◆ initialiseUboDescriptor() [4/6]

C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
StaticRenderNode node 
)

Initialise l'ensemble de descripteurs d'UBO pour un noeud statique.

Paramètres
[in]descriptorPoolLe pool.
[in]nodeLe noeud.

◆ initialiseUboDescriptor() [5/6]

C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
SubmeshSkinninRenderNodesByPassMap &  nodes 
)

Initialise l'ensemble de descripteurs d'UBO pour des noeuds de skining.

Paramètres
[in]descriptorPoolLe pool.
[in]nodesLes noeuds.

◆ initialiseUboDescriptor() [6/6]

C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor ( ashes::DescriptorSetPool const &  descriptorPool,
SubmeshStaticRenderNodesByPassMap &  nodes 
)

Initialise l'ensemble de descripteurs d'UBO pour des noeuds statiques.

Paramètres
[in]descriptorPoolLe pool.
[in]nodesLes noeuds.

◆ isDirty()

bool castor3d::SceneRenderPass::isDirty ( ) const
inline

Références m_isDirty.

◆ isOrderIndependent()

bool castor3d::SceneRenderPass::isOrderIndependent ( ) const
inline

Références m_oit.

◆ prepareBackPipeline() [1/2]

C3D_API PipelineFlags castor3d::SceneRenderPass::prepareBackPipeline ( BlendMode  colourBlendMode,
BlendMode  alphaBlendMode,
VkCompareOp  alphaFunc,
PassFlags const &  passFlags,
TextureFlagsArray const &  textures,
uint32_t  heightMapIndex,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags,
VkPrimitiveTopology  topology,
ashes::PipelineVertexInputStateCreateInfoCRefArray const &  layouts 
)

Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling.

Paramètres
[in]colourBlendModeLe mode de mélange de couleurs.
[in]alphaBlendModeLe mode de mélange alpha.
[in]alphaFuncLa fonction de test alpha.
[in,out]passFlagsUne combinaison de PassFlag.
[in,out]texturesLa configuration des textures.
[in,out]heightMapIndexL'indice de la texture contenant de hauteur.
[in,out]programFlagsUne combinaison de ProgramFlag.
[in,out]sceneFlagsLes indicateurs relatifs à la scène.
[in]topologyLa topologie de rendu.
[in]layoutsLes layouts des tampons de sommets.

◆ prepareBackPipeline() [2/2]

C3D_API void castor3d::SceneRenderPass::prepareBackPipeline ( PipelineFlags flags,
ashes::PipelineVertexInputStateCreateInfoCRefArray const &  layouts 
)

Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling.

Paramètres
[in,out]flagsLes indicateurs de pipeline.
[in]layoutsLes layouts des tampons de sommets.

◆ prepareFrontPipeline() [1/2]

C3D_API PipelineFlags castor3d::SceneRenderPass::prepareFrontPipeline ( BlendMode  colourBlendMode,
BlendMode  alphaBlendMode,
VkCompareOp  alphaFunc,
PassFlags const &  passFlags,
TextureFlagsArray const &  textures,
uint32_t  heightMapIndex,
ProgramFlags const &  programFlags,
SceneFlags const &  sceneFlags,
VkPrimitiveTopology  topology,
ashes::PipelineVertexInputStateCreateInfoCRefArray const &  layouts 
)

Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling.

Paramètres
[in]colourBlendModeLe mode de mélange de couleurs.
[in]alphaBlendModeLe mode de mélange alpha.
[in]alphaFuncLa fonction de test alpha.
[in,out]passFlagsUne combinaison de PassFlag.
[in,out]texturesLa configuration des textures.
[in,out]heightMapIndexL'indice de la texture contenant de hauteur.
[in,out]programFlagsUne combinaison de ProgramFlag.
[in,out]sceneFlagsLes indicateurs relatifs à la scène.
[in]topologyLa topologie de rendu.
[in]layoutsLes layouts des tampons de sommets.

◆ prepareFrontPipeline() [2/2]

C3D_API void castor3d::SceneRenderPass::prepareFrontPipeline ( PipelineFlags flags,
ashes::PipelineVertexInputStateCreateInfoCRefArray const &  layouts 
)

Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling.

Paramètres
[in,out]flagsLes indicateurs de pipeline.
[in]layoutsLes layouts des tampons de sommets.

◆ update()

C3D_API void castor3d::SceneRenderPass::update ( CpuUpdater updater)

Met à jour la passe de rendu, au niveau CPU.

Paramètres
[in,out]updaterLes données d'update.

◆ updateFlags()

C3D_API void castor3d::SceneRenderPass::updateFlags ( PipelineFlags flags) const

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

Paramètres
[in,out]flagsLes indicateurs de pipeline.

◆ updatePipeline()

C3D_API void castor3d::SceneRenderPass::updatePipeline ( RenderPipeline pipeline)

Met à jour lee pipeline opaque.

Paramètres
[in]pipelineLe pipeline de rendu.

Documentation des données membres

◆ m_category

castor::String castor3d::SceneRenderPass::m_category
protected

◆ m_culler

SceneCuller& castor3d::SceneRenderPass::m_culler
protected

Référencé par getCuller().

◆ m_forceTwoSided

bool castor3d::SceneRenderPass::m_forceTwoSided { false }
protected

Référencé par forceTwoSided().

◆ m_index

uint32_t castor3d::SceneRenderPass::m_index { 0u }
protected

◆ m_instanceMult

uint32_t const castor3d::SceneRenderPass::m_instanceMult { 1u }
protected

Référencé par getInstanceMult().

◆ m_isDirty

bool castor3d::SceneRenderPass::m_isDirty { true }
protected

Référencé par isDirty().

◆ m_matrixUbo

MatrixUbo& castor3d::SceneRenderPass::m_matrixUbo
protected

Référencé par getMatrixUbo().

◆ m_mode

RenderMode castor3d::SceneRenderPass::m_mode { RenderMode::eBoth }
protected

◆ m_modelsInstances

std::map< size_t, UniformBufferOffsetT< ModelInstancesUboConfiguration > > castor3d::SceneRenderPass::m_modelsInstances
protected

◆ m_oit

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

Référencé par isOrderIndependent().

◆ m_ownTimer

RenderPassTimerSPtr castor3d::SceneRenderPass::m_ownTimer
protected

◆ m_renderPass

ashes::RenderPassPtr castor3d::SceneRenderPass::m_renderPass
protected

Référencé par getRenderPass().

◆ m_renderQueue

RenderQueue castor3d::SceneRenderPass::m_renderQueue
protected

Référencé par getCommandBuffer(), et hasNodes().

◆ m_renderSystem

RenderSystem& castor3d::SceneRenderPass::m_renderSystem
protected

◆ m_sceneUbo

SceneUbo castor3d::SceneRenderPass::m_sceneUbo
protected

Référencé par getSceneUbo().

◆ m_size

castor::Size castor3d::SceneRenderPass::m_size
protected

◆ m_timer

RenderPassTimer* castor3d::SceneRenderPass::m_timer { nullptr }
protected

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