Castor3D 0.16.0
Multiplatform 3D engine
Fonctions membres publiques | Fonctions membres publiques statiques | Attributs publics | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::RenderNodesPassabstract

#include <RenderNodesPass.hpp>

Graphe d'héritage de castor3d::RenderNodesPass:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::RenderNodesPass:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API ~RenderNodesPass () noexcept override
 Destructeur.
 
virtual C3D_API void update (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU.
 
C3D_API void getSubmeshShaderSource (PipelineFlags const &flags, ast::ShaderBuilder &builder) const
 Récupère le source du geometry shader qui correspond aux indicateurs donnés.
 
C3D_API void getPixelShaderSource (PipelineFlags const &flags, ast::ShaderBuilder &builder) const
 Récupère le source du pixel shader qui correspond aux indicateurs donnés.
 
C3D_API void forceAdjustFlags (PipelineFlags &flags) const
 Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
 
C3D_API SubmeshComponentCombine adjustFlags (SubmeshComponentCombine const &submeshCombine) const
 Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
 
C3D_API PassComponentCombine adjustFlags (PassComponentCombine const &passCombine) const
 Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
 
C3D_API ProgramFlags adjustFlags (ProgramFlags flags) const
 Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
 
C3D_API SceneFlags adjustFlags (SceneFlags flags) const
 Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
 
C3D_API TextureCombine adjustFlags (TextureCombine const &textureCombine) const
 Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe.
 
C3D_API PipelineFlags createPipelineFlags (PassComponentCombine const &passComponents, SubmeshComponentCombine const &submeshComponents, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData const *submeshData) const noexcept
 Crée les indicateurs de pipeline pour la configuration donnée.
 
C3D_API PipelineFlags createPipelineFlags (Pass const &pass, TextureCombine const &textures, SubmeshComponentCombine const &submeshComponents, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData const *submeshData) const noexcept
 Crée les indicateurs de pipeline pour la configuration donnée.
 
C3D_API PipelineAndID prepareBackPipeline (PipelineFlags const &pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling.
 
C3D_API PipelineAndID prepareFrontPipeline (PipelineFlags const &pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling.
 
C3D_API void cleanupPipelines ()
 Nettoie tous les pipelines des listes.
 
C3D_API void initialiseAdditionalDescriptor (RenderPipeline &pipeline, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const *shadowBuffer)
 Initialise l'ensemble de descripteurs additionnels.
 
C3D_API void setIgnoredNode (SceneNode const &node)
 Définit le noeud ignoré.
 
C3D_API void countNodes (RenderInfo &info) const noexcept
 Enregistre les comptes de noeuds dans le RenderInfo donné.
 
C3D_API bool areValidPassFlags (PassComponentCombine const &passFlags) const noexcept
 
virtual C3D_API bool isPassEnabled () const noexcept
 
virtual C3D_API ShaderFlags getShaderFlags () const noexcept
 
virtual C3D_API bool areDebugTargetsEnabled () const noexcept
 
C3D_API bool isValidPass (Pass const &pass) const noexcept
 
C3D_API bool isValidRenderable (RenderedObject const &object) const noexcept
 
C3D_API bool isValidNode (SceneNode const &node) const noexcept
 
C3D_API bool allowClusteredLighting (ClustersConfig const &config) const noexcept
 
C3D_API bool hasNodes () const noexcept
 
C3D_API ScenegetScene () const noexcept
 
C3D_API SceneNode const * getIgnoredNode () const noexcept
 
C3D_API bool isMeshShading () const noexcept
 
C3D_API PipelinesNodesT< SubmeshRenderNode > const & getSubmeshNodes () const
 
C3D_API InstantiatedPipelinesNodesT< SubmeshRenderNode > const & getInstancedSubmeshNodes () const
 
C3D_API PipelinesNodesT< BillboardRenderNode > const & getBillboardNodes () const
 
C3D_API uint32_t getMaxPipelineId () const
 
C3D_API PipelineBufferArray const & getPassPipelineNodes () const
 
C3D_API uint32_t getPipelineNodesIndex (PipelineBaseHash const &hash, ashes::BufferBase const &buffer) const
 
C3D_API uint32_t getDrawCallsCount () const
 
C3D_API RenderCounts const & getVisibleCounts () const
 
ComponentModeFlags getComponentsMask () const noexcept
 
bool isOrderIndependent () const noexcept
 
SceneCullergetCuller () const noexcept
 
CameraUbo const & getMatrixUbo () const noexcept
 
uint32_t getPipelinesCount () const noexcept
 
bool isDirty () const noexcept
 
bool forceTwoSided () const noexcept
 
RenderFilters getRenderFilters () const noexcept
 
castor::String const & getTypeName () const noexcept
 
RenderPassTypeID getTypeID () const noexcept
 
bool filtersStatic () const noexcept
 
bool filtersNonStatic () const noexcept
 
bool handleStatic () const noexcept
 
DeferredLightingFilter getDeferredLightingFilter () const noexcept
 
ParallaxOcclusionFilter getParallaxOcclusionFilter () const noexcept
 
- Fonctions membres publiques hérités de castor::OwnedBy< Engine >
Engine * getOwner () const
 L'objet propriétaire.
 
- Fonctions membres publiques hérités de castor::NamedBaseT< T >
 NamedBaseT (T name) noexcept
 Constructeur.
 
T const & getName () const noexcept
 Récupère le nom.
 
void rename (T name) noexcept
 

Fonctions membres publiques statiques

static C3D_API ashes::PipelineColorBlendStateCreateInfo createBlendState (BlendMode colourBlendMode, BlendMode alphaBlendMode, uint32_t attachesCount)
 
static C3D_API void addShadowBindings (SceneFlags const &sceneFlags, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Ajoute les bindings de descriptor layout des shadow maps à la liste donnée.
 
static C3D_API void addShadowBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Ajoute les bindings de descriptor layout des shadow maps à la liste donnée.
 
static C3D_API void addBackgroundBindings (SceneBackground const &background, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Ajoute les bindings de descriptor layout du background à la liste donnée.
 
static C3D_API void addGIBindings (SceneFlags flags, IndirectLightingData const &indirectLighting, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Ajoute les bindings de descriptor layout de l'éclairage indirect à la liste donnée.
 
static C3D_API void addClusteredLightingBindings (FrustumClusters const &frustumClusters, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index)
 Ajoute les bindings de descriptor layout des clusters à la liste donnée.
 
static C3D_API void addShadowDescriptor (RenderSystem const &renderSystem, crg::RunnableGraph &graph, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const &shadowBuffer, uint32_t &index)
 
static C3D_API void addShadowDescriptor (RenderSystem const &renderSystem, crg::RunnableGraph &graph, SceneFlags const &sceneFlags, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const &shadowBuffer, uint32_t &index)
 
static C3D_API void addBackgroundDescriptor (SceneBackground const &background, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index)
 
static C3D_API void addGIDescriptor (SceneFlags sceneFlags, IndirectLightingData const &indirectLighting, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index)
 
static C3D_API void addClusteredLightingDescriptor (FrustumClusters const &frustumClusters, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index)
 

Attributs publics

RenderNodesPassChangeSignal onSortNodes
 

Fonctions membres protégées

C3D_API RenderNodesPass (crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, RenderNodesPassDesc const &desc)
 Constructeur.
 
virtual C3D_API void doUpdateUbos (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU.
 
virtual C3D_API void doFillAdditionalBindings (PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings) const =0
 Remplit les attaches de layout de descripteurs spécifiques à une passe de rendu.
 
virtual C3D_API bool doIsValidPass (Pass const &pass) const noexcept
 
virtual C3D_API bool doIsValidRenderable (RenderedObject const &object) const noexcept
 
virtual C3D_API SubmeshComponentCombine doAdjustSubmeshComponents (SubmeshComponentCombine submeshCombine) const
 
virtual C3D_API ProgramFlags doAdjustProgramFlags (ProgramFlags flags) const
 
virtual C3D_API SceneFlags doAdjustSceneFlags (SceneFlags flags) const
 
C3D_API ShaderProgramRPtr doGetProgram (PipelineFlags const &flags)
 
C3D_API void doAccept (castor3d::RenderTechniqueVisitor &visitor)
 Fonction d'acceptation de visiteur.
 
C3D_API void doUpdateFlags (PipelineFlags &flags) const
 
C3D_API void doAddShadowBindings (Scene const &scene, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddBackgroundBindings (Scene const &scene, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddClusteredLightingBindings (RenderTarget const &target, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const
 
C3D_API void doAddShadowDescriptor (Scene const &scene, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const *shadowBuffer, uint32_t &index) const
 
C3D_API void doAddBackgroundDescriptor (Scene const &scene, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index) const
 
C3D_API void doAddClusteredLightingDescriptor (RenderTarget const &target, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const
 
RenderQueuegetRenderQueue () const noexcept
 
- Fonctions membres protégées hérités de castor::OwnedBy< Engine >
 OwnedBy (Engine &owner)
 Constructeur.
 

Attributs protégés

RenderDevice const & m_device
 
RenderSystemm_renderSystem
 
CameraUbo const & m_cameraUbo
 
crg::ImageViewIdArray m_targetImage
 
crg::ImageViewIdArray m_targetDepth
 
castor::String m_typeName
 
RenderPassTypeID m_typeID {}
 
RenderFilters m_filters { RenderFilter::eNone }
 
castor::String m_category
 
castor::Size m_size
 
bool m_oit { false }
 
bool m_forceTwoSided { false }
 
bool m_safeBand { false }
 
bool m_isDirty { true }
 
bool m_meshShading {}
 
SceneUbo const * m_sceneUbo {}
 
uint32_t m_index { 0u }
 
std::optional< bool > m_handleStatic { std::nullopt }
 
ComponentModeFlags m_componentsMask {}
 
bool m_allowClusteredLighting {}
 
DeferredLightingFilter m_deferredLightingFilter {}
 
ParallaxOcclusionFilter m_parallaxOcclusionFilter {}
 
- Attributs protégés hérités de castor::NamedBaseT< T >
m_name
 

Documentation des constructeurs et destructeur

◆ RenderNodesPass()

C3D_API castor3d::RenderNodesPass::RenderNodesPass ( crg::FramePass const & pass,
crg::GraphContext & context,
crg::RunnableGraph & graph,
RenderDevice const & device,
castor::String const & typeName,
crg::ImageViewIdArray targetImage,
crg::ImageViewIdArray targetDepth,
RenderNodesPassDesc const & desc )
protected

Constructeur.

Paramètres
[in]passLa frame pass parente.
[in]contextLe contexte de rendu.
[in]graphLe runnable graph.
[in]deviceLe device GPU.
[in]typeNameLe nom du type de la passe.
[in]targetImageL'image dans laquelle cette passe fait son rendu.
[in]targetDepthL'image de profondeur dans laquelle cette passe fait son rendu.
[in]descLes données de construction.

◆ ~RenderNodesPass()

C3D_API castor3d::RenderNodesPass::~RenderNodesPass ( )
overridenoexcept

Destructeur.

Documentation des fonctions membres

◆ addBackgroundBindings()

static C3D_API void castor3d::RenderNodesPass::addBackgroundBindings ( SceneBackground const & background,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
VkShaderStageFlags shaderStages,
uint32_t & index )
static

Ajoute les bindings de descriptor layout du background à la liste donnée.

Paramètres
[in]backgroundLe fond.
[in,out]bindingsReçoit les bindings.
[in]shaderStagesLes shader stages impactés.
[in,out]indexL'index de binding actuel.

◆ addBackgroundDescriptor()

static C3D_API void castor3d::RenderNodesPass::addBackgroundDescriptor ( SceneBackground const & background,
ashes::WriteDescriptorSetArray & descriptorWrites,
crg::ImageViewIdArray const & targetImage,
uint32_t & index )
static

◆ addClusteredLightingBindings()

static C3D_API void castor3d::RenderNodesPass::addClusteredLightingBindings ( FrustumClusters const & frustumClusters,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
VkShaderStageFlags shaderStages,
uint32_t & index )
static

Ajoute les bindings de descriptor layout des clusters à la liste donnée.

Paramètres
[in]frustumClustersLes clusters.
[in,out]bindingsReçoit les bindings.
[in]shaderStagesLes shader stages impactés.
[in,out]indexL'index de binding actuel.

◆ addClusteredLightingDescriptor()

static C3D_API void castor3d::RenderNodesPass::addClusteredLightingDescriptor ( FrustumClusters const & frustumClusters,
ashes::WriteDescriptorSetArray & descriptorWrites,
uint32_t & index )
static

◆ addGIBindings()

static C3D_API void castor3d::RenderNodesPass::addGIBindings ( SceneFlags flags,
IndirectLightingData const & indirectLighting,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
VkShaderStageFlags shaderStages,
uint32_t & index )
static

Ajoute les bindings de descriptor layout de l'éclairage indirect à la liste donnée.

Paramètres
[in]flagsLes indicateurs de scène.
[in]indirectLightingLes données d'indirect lighting.
[in,out]bindingsReçoit les bindings.
[in]shaderStagesLes shader stages impactés.
[in,out]indexL'index de binding actuel.

◆ addGIDescriptor()

static C3D_API void castor3d::RenderNodesPass::addGIDescriptor ( SceneFlags sceneFlags,
IndirectLightingData const & indirectLighting,
ashes::WriteDescriptorSetArray & descriptorWrites,
uint32_t & index )
static

◆ addShadowBindings() [1/2]

static C3D_API void castor3d::RenderNodesPass::addShadowBindings ( ashes::VkDescriptorSetLayoutBindingArray & bindings,
VkShaderStageFlags shaderStages,
uint32_t & index )
static

Ajoute les bindings de descriptor layout des shadow maps à la liste donnée.

Paramètres
[in,out]bindingsReçoit les bindings.
[in]shaderStagesLes shader stages impactés.
[in,out]indexL'index de binding actuel.

◆ addShadowBindings() [2/2]

static C3D_API void castor3d::RenderNodesPass::addShadowBindings ( SceneFlags const & sceneFlags,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
VkShaderStageFlags shaderStages,
uint32_t & index )
static

Ajoute les bindings de descriptor layout des shadow maps à la liste donnée.

Paramètres
[in]sceneFlagsLe mode de mélange couleurs.
[in,out]bindingsReçoit les bindings.
[in]shaderStagesLes shader stages impactés.
[in,out]indexL'index de binding actuel.

◆ addShadowDescriptor() [1/2]

static C3D_API void castor3d::RenderNodesPass::addShadowDescriptor ( RenderSystem const & renderSystem,
crg::RunnableGraph & graph,
ashes::WriteDescriptorSetArray & descriptorWrites,
ShadowMapLightTypeArray const & shadowMaps,
ShadowBuffer const & shadowBuffer,
uint32_t & index )
static

◆ addShadowDescriptor() [2/2]

static C3D_API void castor3d::RenderNodesPass::addShadowDescriptor ( RenderSystem const & renderSystem,
crg::RunnableGraph & graph,
SceneFlags const & sceneFlags,
ashes::WriteDescriptorSetArray & descriptorWrites,
ShadowMapLightTypeArray const & shadowMaps,
ShadowBuffer const & shadowBuffer,
uint32_t & index )
static

◆ adjustFlags() [1/5]

C3D_API PassComponentCombine castor3d::RenderNodesPass::adjustFlags ( PassComponentCombine const & passCombine) const

Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.

Paramètres
[in]passCombineLes flags.

◆ adjustFlags() [2/5]

C3D_API ProgramFlags castor3d::RenderNodesPass::adjustFlags ( ProgramFlags flags) const

Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.

Paramètres
[in]flagsLes flags.

◆ adjustFlags() [3/5]

C3D_API SceneFlags castor3d::RenderNodesPass::adjustFlags ( SceneFlags flags) const

Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.

Paramètres
[in]flagsLes flags.

◆ adjustFlags() [4/5]

C3D_API SubmeshComponentCombine castor3d::RenderNodesPass::adjustFlags ( SubmeshComponentCombine const & submeshCombine) const

Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.

Paramètres
[in]submeshCombineLes flags.

◆ adjustFlags() [5/5]

C3D_API TextureCombine castor3d::RenderNodesPass::adjustFlags ( TextureCombine const & textureCombine) const

Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe.

Paramètres
[in]textureCombineLes indicateurs de textures.
Renvoie
Les indicateurs filtrés.

◆ allowClusteredLighting()

C3D_API bool castor3d::RenderNodesPass::allowClusteredLighting ( ClustersConfig const & config) const
noexcept

◆ areDebugTargetsEnabled()

virtual C3D_API bool castor3d::RenderNodesPass::areDebugTargetsEnabled ( ) const
virtualnoexcept

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

◆ areValidPassFlags()

C3D_API bool castor3d::RenderNodesPass::areValidPassFlags ( PassComponentCombine const & passFlags) const
noexcept

name Accesseurs.

Référencé par castor3d::RenderTechniqueNodesPass::areValidPassFlags().

Voici le graphe des appelants de cette fonction :

◆ cleanupPipelines()

C3D_API void castor3d::RenderNodesPass::cleanupPipelines ( )

Nettoie tous les pipelines des listes.

◆ countNodes()

C3D_API void castor3d::RenderNodesPass::countNodes ( RenderInfo & info) const
noexcept

Enregistre les comptes de noeuds dans le RenderInfo donné.

Paramètres
[in,out]infoReçoit les comptes.

Référencé par castor3d::RenderTechniqueNodesPass::countNodes().

Voici le graphe des appelants de cette fonction :

◆ createBlendState()

static C3D_API ashes::PipelineColorBlendStateCreateInfo castor3d::RenderNodesPass::createBlendState ( BlendMode colourBlendMode,
BlendMode alphaBlendMode,
uint32_t attachesCount )
static
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
Un état de mélange correspondant aux modes de mélange donnés.

◆ createPipelineFlags() [1/2]

C3D_API PipelineFlags castor3d::RenderNodesPass::createPipelineFlags ( Pass const & pass,
TextureCombine const & textures,
SubmeshComponentCombine const & submeshComponents,
ProgramFlags const & programFlags,
SceneFlags const & sceneFlags,
VkPrimitiveTopology topology,
bool isFrontCulled,
GpuBufferOffsetT< castor::Point4f > const & morphTargets,
SubmeshRenderData const * submeshData ) const
noexcept

Crée les indicateurs de pipeline pour la configuration donnée.

Paramètres
[in]passLa passe pour laquelle le pipeline est créé.
[in]texturesLa configuration des textures.
[in]submeshComponentsLa combinaison de composants de submesh.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
[in]topologyLa topologie de rendu.
[in]isFrontCulledtrue pour front face culling, false pour back face culling.
[in]morphTargetsLe buffer de morph targets.
[in]submeshDataLes données de rendu du submesh, s'il en a.

◆ createPipelineFlags() [2/2]

C3D_API PipelineFlags castor3d::RenderNodesPass::createPipelineFlags ( PassComponentCombine const & passComponents,
SubmeshComponentCombine const & submeshComponents,
BlendMode colourBlendMode,
BlendMode alphaBlendMode,
RenderPassTypeID renderPassTypeId,
LightingModelID lightingModelId,
BackgroundModelID backgroundModelId,
VkCompareOp alphaFunc,
VkCompareOp blendAlphaFunc,
TextureCombine const & textures,
ProgramFlags const & programFlags,
SceneFlags const & sceneFlags,
VkPrimitiveTopology topology,
bool isFrontCulled,
uint32_t passLayerIndex,
GpuBufferOffsetT< castor::Point4f > const & morphTargets,
SubmeshRenderData const * submeshData ) const
noexcept

Crée les indicateurs de pipeline pour la configuration donnée.

Paramètres
[in]passComponentsLa combinaison de composants de passe.
[in]submeshComponentsLa combinaison de composants de submesh.
[in]colourBlendModeLe mode de mélange de couleurs.
[in]alphaBlendModeLe mode de mélange de l'alpha
[in]renderPassTypeIdL'ID du type de render pass.
[in]lightingModelIdL'ID du modèle d'éclairage.
[in]backgroundModelIdL'ID du modèle de fond.
[in]alphaFuncLa fonction de comparaison de l'alpha (pour les noeuds opaques).
[in]blendAlphaFuncLa fonction de comparaison de l'alpha (pour les noeuds transparents).
[in]texturesLa configuration des textures.
[in]programFlagsUne combinaison de ProgramFlag.
[in]sceneFlagsLes indicateurs relatifs à la scène.
[in]topologyLa topologie de rendu.
[in]isFrontCulledtrue pour front face culling, false pour back face culling.
[in]passLayerIndexL'indice de la couche de la passe de matériau.
[in]morphTargetsLe buffer de morph targets.
[in]submeshDataLes données de rendu du submesh, s'il en a.

◆ doAccept()

C3D_API void castor3d::RenderNodesPass::doAccept ( castor3d::RenderTechniqueVisitor & visitor)
protected

Fonction d'acceptation de visiteur.

Paramètres
visitorLe ... visiteur.

◆ doAddBackgroundBindings()

C3D_API void castor3d::RenderNodesPass::doAddBackgroundBindings ( Scene const & scene,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
uint32_t & index ) const
protected

◆ doAddBackgroundDescriptor()

C3D_API void castor3d::RenderNodesPass::doAddBackgroundDescriptor ( Scene const & scene,
ashes::WriteDescriptorSetArray & descriptorWrites,
crg::ImageViewIdArray const & targetImage,
uint32_t & index ) const
protected

◆ doAddClusteredLightingBindings()

C3D_API void castor3d::RenderNodesPass::doAddClusteredLightingBindings ( RenderTarget const & target,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
uint32_t & index ) const
protected

◆ doAddClusteredLightingDescriptor()

C3D_API void castor3d::RenderNodesPass::doAddClusteredLightingDescriptor ( RenderTarget const & target,
ashes::WriteDescriptorSetArray & descriptorWrites,
uint32_t & index ) const
protected

◆ doAddShadowBindings()

C3D_API void castor3d::RenderNodesPass::doAddShadowBindings ( Scene const & scene,
ashes::VkDescriptorSetLayoutBindingArray & bindings,
uint32_t & index ) const
protected

◆ doAddShadowDescriptor()

C3D_API void castor3d::RenderNodesPass::doAddShadowDescriptor ( Scene const & scene,
ashes::WriteDescriptorSetArray & descriptorWrites,
ShadowMapLightTypeArray const & shadowMaps,
ShadowBuffer const * shadowBuffer,
uint32_t & index ) const
protected

◆ doAdjustProgramFlags()

virtual C3D_API ProgramFlags castor3d::RenderNodesPass::doAdjustProgramFlags ( ProgramFlags flags) const
protectedvirtual

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

◆ doAdjustSceneFlags()

virtual C3D_API SceneFlags castor3d::RenderNodesPass::doAdjustSceneFlags ( SceneFlags flags) const
protectedvirtual

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

◆ doAdjustSubmeshComponents()

virtual C3D_API SubmeshComponentCombine castor3d::RenderNodesPass::doAdjustSubmeshComponents ( SubmeshComponentCombine submeshCombine) const
protectedvirtual

◆ doFillAdditionalBindings()

virtual C3D_API void castor3d::RenderNodesPass::doFillAdditionalBindings ( PipelineFlags const & flags,
ashes::VkDescriptorSetLayoutBindingArray & bindings ) const
protectedpure virtual

Remplit les attaches de layout de descripteurs spécifiques à une passe de rendu.

Paramètres
[in]flagsLes indicateurs de pipeline.
[in,out]bindingsReçoit les attaches additionnelles.

◆ doGetProgram()

C3D_API ShaderProgramRPtr castor3d::RenderNodesPass::doGetProgram ( PipelineFlags const & flags)
protected

◆ doIsValidPass()

virtual C3D_API bool castor3d::RenderNodesPass::doIsValidPass ( Pass const & pass) const
protectedvirtualnoexcept
Paramètres
[in]passLa passe de matériau.
Renvoie
true si la passe est rendue via cette passe de noeuds.

◆ doIsValidRenderable()

virtual C3D_API bool castor3d::RenderNodesPass::doIsValidRenderable ( RenderedObject const & object) const
protectedvirtualnoexcept
Paramètres
[in]objectL'objet rendu.
Renvoie
true si l'objet est rendu via cette passe de noeuds.

◆ doUpdateFlags()

C3D_API void castor3d::RenderNodesPass::doUpdateFlags ( PipelineFlags & flags) const
protected

◆ doUpdateUbos()

virtual C3D_API void castor3d::RenderNodesPass::doUpdateUbos ( CpuUpdater & updater)
protectedvirtual

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

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

◆ filtersNonStatic()

bool castor3d::RenderNodesPass::filtersNonStatic ( ) const
inlinenoexcept

Références handleStatic(), et m_handleStatic.

Voici le graphe d'appel pour cette fonction :

◆ filtersStatic()

bool castor3d::RenderNodesPass::filtersStatic ( ) const
inlinenoexcept

Références handleStatic(), et m_handleStatic.

Voici le graphe d'appel pour cette fonction :

◆ forceAdjustFlags()

C3D_API void castor3d::RenderNodesPass::forceAdjustFlags ( PipelineFlags & flags) const

Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.

Paramètres
[in]flagsLes flags.

◆ forceTwoSided()

bool castor3d::RenderNodesPass::forceTwoSided ( ) const
inlinenoexcept

Références m_forceTwoSided.

◆ getBillboardNodes()

C3D_API PipelinesNodesT< BillboardRenderNode > const & castor3d::RenderNodesPass::getBillboardNodes ( ) const

◆ getComponentsMask()

ComponentModeFlags castor3d::RenderNodesPass::getComponentsMask ( ) const
inlinenoexcept

Références m_componentsMask.

◆ getCuller()

SceneCuller & castor3d::RenderNodesPass::getCuller ( ) const
inlinenoexcept

Références castor::DataHolderT< Data, Index >::getData().

Voici le graphe d'appel pour cette fonction :

◆ getDeferredLightingFilter()

DeferredLightingFilter castor3d::RenderNodesPass::getDeferredLightingFilter ( ) const
inlinenoexcept

Références m_deferredLightingFilter.

◆ getDrawCallsCount()

C3D_API uint32_t castor3d::RenderNodesPass::getDrawCallsCount ( ) const

◆ getIgnoredNode()

C3D_API SceneNode const * castor3d::RenderNodesPass::getIgnoredNode ( ) const
noexcept

◆ getInstancedSubmeshNodes()

C3D_API InstantiatedPipelinesNodesT< SubmeshRenderNode > const & castor3d::RenderNodesPass::getInstancedSubmeshNodes ( ) const

◆ getMatrixUbo()

CameraUbo const & castor3d::RenderNodesPass::getMatrixUbo ( ) const
inlinenoexcept

Références m_cameraUbo.

◆ getMaxPipelineId()

C3D_API uint32_t castor3d::RenderNodesPass::getMaxPipelineId ( ) const

◆ getParallaxOcclusionFilter()

ParallaxOcclusionFilter castor3d::RenderNodesPass::getParallaxOcclusionFilter ( ) const
inlinenoexcept

◆ getPassPipelineNodes()

C3D_API PipelineBufferArray const & castor3d::RenderNodesPass::getPassPipelineNodes ( ) const

◆ getPipelineNodesIndex()

C3D_API uint32_t castor3d::RenderNodesPass::getPipelineNodesIndex ( PipelineBaseHash const & hash,
ashes::BufferBase const & buffer ) const

◆ getPipelinesCount()

uint32_t castor3d::RenderNodesPass::getPipelinesCount ( ) const
inlinenoexcept

◆ getPixelShaderSource()

C3D_API void castor3d::RenderNodesPass::getPixelShaderSource ( PipelineFlags const & flags,
ast::ShaderBuilder & builder ) const

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

Paramètres
[in]flagsLes indicateurs de pipeline.
[in]builderReçoit le source.

◆ getRenderFilters()

RenderFilters castor3d::RenderNodesPass::getRenderFilters ( ) const
inlinenoexcept

Références m_filters.

◆ getRenderQueue()

RenderQueue & castor3d::RenderNodesPass::getRenderQueue ( ) const
inlineprotectednoexcept

Références castor::DataHolderT< Data, Index >::getData().

Voici le graphe d'appel pour cette fonction :

◆ getScene()

C3D_API Scene & castor3d::RenderNodesPass::getScene ( ) const
noexcept

◆ getShaderFlags()

virtual C3D_API ShaderFlags castor3d::RenderNodesPass::getShaderFlags ( ) const
virtualnoexcept

◆ getSubmeshNodes()

C3D_API PipelinesNodesT< SubmeshRenderNode > const & castor3d::RenderNodesPass::getSubmeshNodes ( ) const

◆ getSubmeshShaderSource()

C3D_API void castor3d::RenderNodesPass::getSubmeshShaderSource ( PipelineFlags const & flags,
ast::ShaderBuilder & builder ) const

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

Paramètres
[in]flagsLes indicateurs de pipeline.
[in]builderReçoit le source.

◆ getTypeID()

RenderPassTypeID castor3d::RenderNodesPass::getTypeID ( ) const
inlinenoexcept

Références m_typeID.

◆ getTypeName()

castor::String const & castor3d::RenderNodesPass::getTypeName ( ) const
inlinenoexcept

Références m_typeName.

◆ getVisibleCounts()

C3D_API RenderCounts const & castor3d::RenderNodesPass::getVisibleCounts ( ) const

◆ handleStatic()

bool castor3d::RenderNodesPass::handleStatic ( ) const
inlinenoexcept

Références m_handleStatic.

Référencé par filtersNonStatic(), et filtersStatic().

Voici le graphe des appelants de cette fonction :

◆ hasNodes()

C3D_API bool castor3d::RenderNodesPass::hasNodes ( ) const
noexcept

◆ initialiseAdditionalDescriptor()

C3D_API void castor3d::RenderNodesPass::initialiseAdditionalDescriptor ( RenderPipeline & pipeline,
ShadowMapLightTypeArray const & shadowMaps,
ShadowBuffer const * shadowBuffer )

Initialise l'ensemble de descripteurs additionnels.

Paramètres
[in]pipelineLe render pipeline.
[in]shadowMapsLes shadow maps.
[in]shadowBufferLe buffer contenant les données de configuration des ombres.

◆ isDirty()

bool castor3d::RenderNodesPass::isDirty ( ) const
inlinenoexcept

Références m_isDirty.

◆ isMeshShading()

C3D_API bool castor3d::RenderNodesPass::isMeshShading ( ) const
noexcept

◆ isOrderIndependent()

bool castor3d::RenderNodesPass::isOrderIndependent ( ) const
inlinenoexcept

Références m_oit.

◆ isPassEnabled()

virtual C3D_API bool castor3d::RenderNodesPass::isPassEnabled ( ) const
virtualnoexcept

◆ isValidNode()

C3D_API bool castor3d::RenderNodesPass::isValidNode ( SceneNode const & node) const
noexcept

◆ isValidPass()

C3D_API bool castor3d::RenderNodesPass::isValidPass ( Pass const & pass) const
noexcept

◆ isValidRenderable()

C3D_API bool castor3d::RenderNodesPass::isValidRenderable ( RenderedObject const & object) const
noexcept

◆ prepareBackPipeline()

C3D_API PipelineAndID castor3d::RenderNodesPass::prepareBackPipeline ( PipelineFlags const & pipelineFlags,
ashes::PipelineVertexInputStateCreateInfoCRefArray const & vertexLayouts,
ashes::DescriptorSetLayout const * meshletDescriptorLayout )

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

Paramètres
[in]pipelineFlagsLes indicateurs de pipeline.
[in]vertexLayoutsLes layouts des tampons de sommets.
[in]meshletDescriptorLayoutLes layouts optionnels de descripteurs de meshlets.

◆ prepareFrontPipeline()

C3D_API PipelineAndID castor3d::RenderNodesPass::prepareFrontPipeline ( PipelineFlags const & pipelineFlags,
ashes::PipelineVertexInputStateCreateInfoCRefArray const & vertexLayouts,
ashes::DescriptorSetLayout const * meshletDescriptorLayout )

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

Paramètres
[in]pipelineFlagsLes indicateurs de pipeline.
[in]vertexLayoutsLes layouts des tampons de sommets.
[in]meshletDescriptorLayoutLes layouts optionnels de descripteurs de meshlets.

◆ setIgnoredNode()

C3D_API void castor3d::RenderNodesPass::setIgnoredNode ( SceneNode const & node)

Définit le noeud ignoré.

Remarques
Tous les objets liés à ce noued seront ignorés lors du rendu.
Paramètres
[in]nodeLe noeud.

◆ update()

virtual C3D_API void castor3d::RenderNodesPass::update ( CpuUpdater & updater)
virtual

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

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

Réimplémentée dans castor3d::VoxelizePass, castor3d::RenderTechniqueNodesPass, castor3d::ShadowMapPassDirectional, castor3d::ShadowMapPassPoint, et castor3d::ShadowMapPassSpot.

Documentation des données membres

◆ m_allowClusteredLighting

bool castor3d::RenderNodesPass::m_allowClusteredLighting {}
protected

◆ m_cameraUbo

CameraUbo const& castor3d::RenderNodesPass::m_cameraUbo
protected

Référencé par getMatrixUbo().

◆ m_category

castor::String castor3d::RenderNodesPass::m_category
protected

◆ m_componentsMask

ComponentModeFlags castor3d::RenderNodesPass::m_componentsMask {}
protected

Référencé par getComponentsMask().

◆ m_deferredLightingFilter

DeferredLightingFilter castor3d::RenderNodesPass::m_deferredLightingFilter {}
protected

Référencé par getDeferredLightingFilter().

◆ m_device

RenderDevice const& castor3d::RenderNodesPass::m_device
protected

◆ m_filters

RenderFilters castor3d::RenderNodesPass::m_filters { RenderFilter::eNone }
protected

Référencé par getRenderFilters().

◆ m_forceTwoSided

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

Référencé par forceTwoSided().

◆ m_handleStatic

std::optional< bool > castor3d::RenderNodesPass::m_handleStatic { std::nullopt }
protected

◆ m_index

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

◆ m_isDirty

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

Référencé par isDirty().

◆ m_meshShading

bool castor3d::RenderNodesPass::m_meshShading {}
protected

◆ m_oit

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

Référencé par isOrderIndependent().

◆ m_parallaxOcclusionFilter

ParallaxOcclusionFilter castor3d::RenderNodesPass::m_parallaxOcclusionFilter {}
protected

Référencé par getParallaxOcclusionFilter().

◆ m_renderSystem

RenderSystem& castor3d::RenderNodesPass::m_renderSystem
protected

◆ m_safeBand

bool castor3d::RenderNodesPass::m_safeBand { false }
protected

◆ m_sceneUbo

SceneUbo const* castor3d::RenderNodesPass::m_sceneUbo {}
protected

◆ m_size

castor::Size castor3d::RenderNodesPass::m_size
protected

◆ m_targetDepth

crg::ImageViewIdArray castor3d::RenderNodesPass::m_targetDepth
protected

◆ m_targetImage

crg::ImageViewIdArray castor3d::RenderNodesPass::m_targetImage
protected

◆ m_typeID

RenderPassTypeID castor3d::RenderNodesPass::m_typeID {}
protected

Référencé par getTypeID().

◆ m_typeName

castor::String castor3d::RenderNodesPass::m_typeName
protected

Référencé par getTypeName().

◆ onSortNodes

RenderNodesPassChangeSignal castor3d::RenderNodesPass::onSortNodes
mutable

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