Castor3D 0.15.0
Multiplatform 3D engine
|
#include <RenderNodesPass.hpp>
Fonctions membres publiques | |
C3D_API | ~RenderNodesPass () override |
Destructeur. | |
virtual C3D_API void | update (CpuUpdater &updater) |
Met à jour la passe de rendu, au niveau CPU. | |
C3D_API ShaderPtr | getTaskShaderSource (PipelineFlags const &flags) const |
Récupère le source du task shader qui correspond aux indicateurs donnés. | |
C3D_API ShaderPtr | getMeshShaderSource (PipelineFlags const &flags) const |
Récupère le source du mesh shader qui correspond aux indicateurs donnés. | |
C3D_API ShaderPtr | getVertexShaderSource (PipelineFlags const &flags) const |
Récupère le source du vertex shader qui correspond aux indicateurs donnés. | |
C3D_API ShaderPtr | getHullShaderSource (PipelineFlags const &flags) const |
Récupère le source du hull shader qui correspond aux indicateurs donnés. | |
C3D_API ShaderPtr | getDomainShaderSource (PipelineFlags const &flags) const |
Récupère le source du domain shader qui correspond aux indicateurs donnés. | |
C3D_API ShaderPtr | getGeometryShaderSource (PipelineFlags const &flags) const |
Récupère le source du geometry shader qui correspond aux indicateurs donnés. | |
C3D_API ShaderPtr | getPixelShaderSource (PipelineFlags const &flags) const |
Récupère le source du pixel shader qui correspond aux indicateurs donnés. | |
C3D_API SubmeshFlags | adjustFlags (SubmeshFlags flags) const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe. | |
C3D_API PassComponentCombine | adjustFlags (PassComponentCombine flags) 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 texturesFlags) const |
Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe. | |
C3D_API PipelineFlags | createPipelineFlags (PassComponentCombine components, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, bool invertNormals, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets) const |
Crée les indicateurs de pipeline pour la configuration donnée. | |
C3D_API PipelineFlags | createPipelineFlags (Pass const &pass, TextureCombine const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets) const |
Crée les indicateurs de pipeline pour la configuration donnée. | |
C3D_API RenderPipeline & | prepareBackPipeline (PipelineFlags 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 RenderPipeline & | prepareFrontPipeline (PipelineFlags 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 | initialiseAdditionalDescriptor (RenderPipeline &pipeline, ShadowMapLightTypeArray const &shadowMaps, GpuBufferOffsetT< castor::Point4f > const &morphTargets) |
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 |
Enregistre les comptes de noeuds dans le RenderInfo donné. | |
virtual C3D_API ComponentModeFlags | getComponentsMask () const |
virtual C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const |
virtual C3D_API bool | isPassEnabled () const |
virtual C3D_API ShaderFlags | getShaderFlags () const |
C3D_API bool | isValidPass (Pass const &pass) const |
C3D_API bool | isValidRenderable (RenderedObject const &object) const |
C3D_API bool | isValidNode (SceneNode const &node) const |
C3D_API bool | hasNodes () const |
C3D_API Scene & | getScene () const |
C3D_API SceneNode const * | getIgnoredNode () const |
C3D_API bool | isMeshShading () const |
C3D_API NodePtrByPipelineMapT< SubmeshRenderNode > const & | getSubmeshNodes () const |
C3D_API ObjectNodesPtrByPipelineMapT< SubmeshRenderNode > const & | getInstancedSubmeshNodes () const |
C3D_API NodePtrByPipelineMapT< BillboardRenderNode > const & | getBillboardNodes () const |
C3D_API std::pair< uint32_t, uint32_t > | fillPipelinesIds (castor::ArrayView< uint32_t > nodesPipelinesIds) 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 |
bool | isOrderIndependent () const |
SceneCuller & | getCuller () const |
CameraUbo const & | getMatrixUbo () const |
uint32_t | getPipelinesCount () const |
bool | isDirty () const |
bool | forceTwoSided () const |
RenderFilters | getRenderFilters () const |
castor::String const & | getTypeName () const |
RenderPassTypeID | getTypeID () const |
bool | filtersStatic () const |
bool | filtersNonStatic () const |
bool | handleStatic () 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. | |
Attributs publics | |
PassSortNodesSignal | 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 |
virtual C3D_API bool | doIsValidRenderable (RenderedObject const &object) const |
virtual C3D_API SubmeshFlags | doAdjustSubmeshFlags (SubmeshFlags flags) const |
virtual C3D_API ProgramFlags | doAdjustProgramFlags (ProgramFlags flags) const |
virtual C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const |
C3D_API ShaderProgramRPtr | doGetProgram (PipelineFlags const &flags, VkCullModeFlags cullMode=VK_CULL_MODE_NONE) |
C3D_API void | doUpdateFlags (PipelineFlags &flags) const |
C3D_API void | doAddShadowBindings (Scene const &scene, PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
C3D_API void | doAddBackgroundBindings (Scene const &scene, PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
C3D_API void | doAddShadowDescriptor (Scene const &scene, PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, uint32_t &index) const |
C3D_API void | doAddBackgroundDescriptor (Scene const &scene, PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index) const |
Attributs protégés | |
RenderDevice const & | m_device |
RenderSystem & | m_renderSystem |
CameraUbo const & | m_cameraUbo |
SceneCuller & | m_culler |
crg::ImageViewIdArray | m_targetImage |
crg::ImageViewIdArray | m_targetDepth |
castor::String | m_typeName |
RenderPassTypeID | m_typeID {} |
RenderFilters | m_filters { RenderFilter::eNone } |
RenderQueueUPtr | m_renderQueue |
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 } |
|
protected |
Constructeur.
[in] | pass | La frame pass parente. |
[in] | context | Le contexte de rendu. |
[in] | graph | Le runnable graph. |
[in] | device | Le device GPU. |
[in] | typeName | Le nom du type de la passe. |
[in] | targetImage | L'image dans laquelle cette passe fait son rendu. |
[in] | targetDepth | L'image de profondeur dans laquelle cette passe fait son rendu. |
[in] | desc | Les données de construction. |
|
override |
Destructeur.
C3D_API PassComponentCombine castor3d::RenderNodesPass::adjustFlags | ( | PassComponentCombine | flags | ) | const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
[in] | flags | Les flags. |
C3D_API ProgramFlags castor3d::RenderNodesPass::adjustFlags | ( | ProgramFlags | flags | ) | const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
[in] | flags | Les flags. |
C3D_API SceneFlags castor3d::RenderNodesPass::adjustFlags | ( | SceneFlags | flags | ) | const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
[in] | flags | Les flags. |
C3D_API SubmeshFlags castor3d::RenderNodesPass::adjustFlags | ( | SubmeshFlags | flags | ) | const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
[in] | flags | Les flags. |
C3D_API TextureCombine castor3d::RenderNodesPass::adjustFlags | ( | TextureCombine | texturesFlags | ) | const |
Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe.
[in] | texturesFlags | Les indicateurs de textures. |
|
virtual |
Réimplémentée dans castor3d::RenderTechniqueNodesPass.
Référencé par castor3d::RenderTechniqueNodesPass::areValidPassFlags().
C3D_API void castor3d::RenderNodesPass::countNodes | ( | RenderInfo & | info | ) | const |
Enregistre les comptes de noeuds dans le RenderInfo donné.
[in,out] | info | Reçoit les comptes. |
Référencé par castor3d::RenderTechniqueNodesPass::countNodes().
|
static |
Crée un état de mélange correspondant aux modes de mélange donnés.
[in] | colourBlendMode | Le mode de mélange couleurs. |
[in] | alphaBlendMode | Le mode de mélange alpha. |
[in] | attachesCount | Le nombre d'attaches de mélange voulues. |
C3D_API PipelineFlags castor3d::RenderNodesPass::createPipelineFlags | ( | Pass const & | pass, |
TextureCombine const & | textures, | ||
SubmeshFlags const & | submeshFlags, | ||
ProgramFlags const & | programFlags, | ||
SceneFlags const & | sceneFlags, | ||
VkPrimitiveTopology | topology, | ||
bool | isFrontCulled, | ||
GpuBufferOffsetT< castor::Point4f > const & | morphTargets | ||
) | const |
Crée les indicateurs de pipeline pour la configuration donnée.
[in] | pass | La passe pour laquelle le pipeline est créé. |
[in] | textures | La configuration des textures. |
[in] | submeshFlags | Une combinaison de SubmeshFlag. |
[in] | programFlags | Une combinaison de ProgramFlag. |
[in] | sceneFlags | Les indicateurs relatifs à la scène. |
[in] | topology | La topologie de rendu. |
[in] | isFrontCulled | true pour front face culling, false pour back face culling. |
[in] | morphTargets | Le buffer de morph targets. |
C3D_API PipelineFlags castor3d::RenderNodesPass::createPipelineFlags | ( | PassComponentCombine | components, |
BlendMode | colourBlendMode, | ||
BlendMode | alphaBlendMode, | ||
RenderPassTypeID | renderPassTypeId, | ||
LightingModelID | lightingModelId, | ||
BackgroundModelID | backgroundModelId, | ||
VkCompareOp | alphaFunc, | ||
VkCompareOp | blendAlphaFunc, | ||
TextureCombine const & | textures, | ||
SubmeshFlags const & | submeshFlags, | ||
ProgramFlags const & | programFlags, | ||
SceneFlags const & | sceneFlags, | ||
VkPrimitiveTopology | topology, | ||
bool | isFrontCulled, | ||
bool | invertNormals, | ||
uint32_t | passLayerIndex, | ||
GpuBufferOffsetT< castor::Point4f > const & | morphTargets | ||
) | const |
Crée les indicateurs de pipeline pour la configuration donnée.
[in] | components | La combinaison de composants. |
[in] | colourBlendMode | Le mode de mélange de couleurs. |
[in] | alphaBlendMode | Le mode de mélange de l'alpha |
[in] | renderPassTypeId | L'ID du type de render pass. |
[in] | lightingModelId | L'ID du modèle d'éclairage. |
[in] | backgroundModelId | L'ID du modèle de fond. |
[in] | alphaFunc | La fonction de comparaison de l'alpha (pour les noeuds opaques). |
[in] | blendAlphaFunc | La fonction de comparaison de l'alpha (pour les noeuds transparents). |
[in] | textures | La configuration des textures. |
[in] | submeshFlags | Une combinaison de SubmeshFlag. |
[in] | programFlags | Une combinaison de ProgramFlag. |
[in] | sceneFlags | Les indicateurs relatifs à la scène. |
[in] | topology | La topologie de rendu. |
[in] | isFrontCulled | true pour front face culling, false pour back face culling. |
[in] | invertNormals | true pour inverser les normales. |
[in] | passLayerIndex | L'indice de la couche de la passe de matériau. |
[in] | morphTargets | Le buffer de morph targets. |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedvirtual |
Réimplémentée dans castor3d::RenderTechniqueNodesPass.
|
protectedvirtual |
Réimplémentée dans castor3d::RenderTechniqueNodesPass.
|
protectedvirtual |
|
protectedpure virtual |
Remplit les attaches de layout de descripteurs spécifiques à une passe de rendu.
[in] | flags | Les indicateurs de pipeline. |
[in,out] | bindings | Reçoit les attaches additionnelles. |
|
protected |
|
protectedvirtual |
[in] | pass | La passe de matériau. |
true
si la passe est rendue via cette passe de noeuds.
|
protectedvirtual |
[in] | object | L'objet rendu. |
true
si l'objet est rendu via cette passe de noeuds.
|
protected |
|
protectedvirtual |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
C3D_API std::pair< uint32_t, uint32_t > castor3d::RenderNodesPass::fillPipelinesIds | ( | castor::ArrayView< uint32_t > | nodesPipelinesIds | ) | const |
|
inline |
|
inline |
|
inline |
Références m_forceTwoSided.
C3D_API NodePtrByPipelineMapT< BillboardRenderNode > const & castor3d::RenderNodesPass::getBillboardNodes | ( | ) | const |
|
virtual |
name Accesseurs.
Réimplémentée dans castor3d::VoxelizePass, castor3d::OpaquePass, castor3d::ForwardRenderTechniquePass, castor3d::PickingPass, castor3d::DepthPass, castor3d::VisibilityPass, castor3d::ShadowMapPass, et castor3d::TransparentPass.
|
inline |
Références m_culler.
C3D_API ShaderPtr castor3d::RenderNodesPass::getDomainShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du domain shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
C3D_API uint32_t castor3d::RenderNodesPass::getDrawCallsCount | ( | ) | const |
C3D_API ShaderPtr castor3d::RenderNodesPass::getGeometryShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du geometry shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
C3D_API ShaderPtr castor3d::RenderNodesPass::getHullShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du hull shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
C3D_API ObjectNodesPtrByPipelineMapT< SubmeshRenderNode > const & castor3d::RenderNodesPass::getInstancedSubmeshNodes | ( | ) | const |
|
inline |
Références m_cameraUbo.
C3D_API ShaderPtr castor3d::RenderNodesPass::getMeshShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du mesh shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
C3D_API PipelineBufferArray const & castor3d::RenderNodesPass::getPassPipelineNodes | ( | ) | const |
C3D_API uint32_t castor3d::RenderNodesPass::getPipelineNodesIndex | ( | PipelineBaseHash const & | hash, |
ashes::BufferBase const & | buffer | ||
) | const |
|
inline |
C3D_API ShaderPtr castor3d::RenderNodesPass::getPixelShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du pixel shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
inline |
Références m_filters.
|
virtual |
C3D_API NodePtrByPipelineMapT< SubmeshRenderNode > const & castor3d::RenderNodesPass::getSubmeshNodes | ( | ) | const |
C3D_API ShaderPtr castor3d::RenderNodesPass::getTaskShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du task shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
inline |
Références m_typeID.
|
inline |
Références m_typeName.
C3D_API ShaderPtr castor3d::RenderNodesPass::getVertexShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du vertex shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
inline |
Références m_handleStatic.
Référencé par filtersNonStatic(), et filtersStatic().
C3D_API bool castor3d::RenderNodesPass::hasNodes | ( | ) | const |
C3D_API void castor3d::RenderNodesPass::initialiseAdditionalDescriptor | ( | RenderPipeline & | pipeline, |
ShadowMapLightTypeArray const & | shadowMaps, | ||
GpuBufferOffsetT< castor::Point4f > const & | morphTargets | ||
) |
Initialise l'ensemble de descripteurs additionnels.
[in] | pipeline | Le render pipeline. |
[in] | shadowMaps | Les shadow maps. |
[in] | morphTargets | Le buffer de morph targets. |
|
inline |
Références m_isDirty.
C3D_API bool castor3d::RenderNodesPass::isMeshShading | ( | ) | const |
|
inline |
Références m_oit.
|
virtual |
Réimplémentée dans castor3d::VoxelizePass, castor3d::RenderTechniqueNodesPass, et castor3d::ShadowMapPass.
Référencé par castor3d::RenderTechniqueNodesPass::isPassEnabled(), et castor3d::IsRenderPassEnabled::operator()().
C3D_API bool castor3d::RenderNodesPass::isValidRenderable | ( | RenderedObject const & | object | ) | const |
C3D_API RenderPipeline & castor3d::RenderNodesPass::prepareBackPipeline | ( | PipelineFlags | 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.
[in] | pipelineFlags | Les indicateurs de pipeline. |
[in] | vertexLayouts | Les layouts des tampons de sommets. |
[in] | meshletDescriptorLayout | Les layouts optionnels de descripteurs de meshlets. |
C3D_API RenderPipeline & castor3d::RenderNodesPass::prepareFrontPipeline | ( | PipelineFlags | 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.
[in] | pipelineFlags | Les indicateurs de pipeline. |
[in] | vertexLayouts | Les layouts des tampons de sommets. |
[in] | meshletDescriptorLayout | Les layouts optionnels de descripteurs de meshlets. |
Définit le noeud ignoré.
[in] | node | Le noeud. |
|
virtual |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
Réimplémentée dans castor3d::VoxelizePass, castor3d::RenderTechniqueNodesPass, castor3d::ShadowMapPassDirectional, castor3d::ShadowMapPassPoint, et castor3d::ShadowMapPassSpot.
|
protected |
Référencé par getMatrixUbo().
|
protected |
|
protected |
Référencé par getCuller().
|
protected |
|
protected |
Référencé par getRenderFilters().
|
protected |
Référencé par forceTwoSided().
|
protected |
Référencé par filtersNonStatic(), filtersStatic(), et handleStatic().
|
protected |
|
protected |
Référencé par isDirty().
|
protected |
|
protected |
Référencé par isOrderIndependent().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Référencé par getTypeID().
|
protected |
Référencé par getTypeName().
|
mutable |