Castor3D 0.13.0
Multiplatform 3D engine
|
#include <RenderNodesPass.hpp>
Classes | |
struct | PassDescriptors |
Fonctions membres publiques | |
C3D_API | ~RenderNodesPass () override |
Destructeur. Plus de détails... | |
virtual C3D_API void | update (CpuUpdater &updater) |
Met à jour la passe de rendu, au niveau CPU. Plus de détails... | |
C3D_API ShaderPtr | getTaskShaderSource (PipelineFlags const &flags) const |
Récupère le source du task shader qui correspond aux indicateurs donnés. Plus de détails... | |
C3D_API ShaderPtr | getMeshShaderSource (PipelineFlags const &flags) const |
Récupère le source du mesh shader qui correspond aux indicateurs donnés. 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 | getHullShaderSource (PipelineFlags const &flags) const |
Récupère le source du hull shader qui correspond aux indicateurs donnés. Plus de détails... | |
C3D_API ShaderPtr | getDomainShaderSource (PipelineFlags const &flags) const |
Récupère le source du domain 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 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 SubmeshFlags | adjustFlags (SubmeshFlags flags) const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe. Plus de détails... | |
C3D_API PassFlags | adjustFlags (PassFlags flags) const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe. Plus de détails... | |
C3D_API ProgramFlags | adjustFlags (ProgramFlags flags) const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe. Plus de détails... | |
C3D_API SceneFlags | adjustFlags (SceneFlags flags) const |
Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe. Plus de détails... | |
C3D_API PipelineFlags | createPipelineFlags (BlendMode colourBlendMode, BlendMode alphaBlendMode, PassFlags passFlags, RenderPassTypeID renderPassTypeID, PassTypeID passTypeID, uint32_t heightTextureIndex, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureFlagsArray const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets) |
Crée les indicateurs de pipeline pour la configuration donnée. Plus de détails... | |
C3D_API PipelineFlags | createPipelineFlags (Pass const &pass, TextureFlagsArray const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets) |
Crée les indicateurs de pipeline pour la configuration donnée. Plus de détails... | |
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. Plus de détails... | |
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. Plus de détails... | |
C3D_API void | initialiseAdditionalDescriptor (RenderPipeline &pipeline, ShadowMapLightTypeArray const &shadowMaps, GpuBufferOffsetT< castor::Point4f > const &morphTargets) |
Initialise l'ensemble de descripteurs additionnels. Plus de détails... | |
C3D_API FilteredTextureFlags | filterTexturesFlags (TextureFlagsArray const &textures) const |
Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe. Plus de détails... | |
C3D_API void | setIgnoredNode (SceneNode const &node) |
Définit le noeud ignoré. Plus de détails... | |
virtual C3D_API TextureFlags | getTexturesMask () const |
C3D_API bool | isValidPass (Pass const &pass) const |
C3D_API bool | isValidRenderable (RenderedObject const &object) const |
C3D_API bool | hasNodes () const |
C3D_API bool | isPassEnabled () const |
C3D_API Scene & | getScene () const |
C3D_API SceneNode const * | getIgnoredNode () const |
virtual C3D_API ShaderFlags | getShaderFlags () const |
bool | isOrderIndependent () const |
SceneCuller const & | getCuller () const |
SceneCuller & | getCuller () |
SceneUbo & | getSceneUbo () |
SceneUbo const & | getSceneUbo () const |
MatrixUbo & | getMatrixUbo () const |
uint32_t | getPipelinesCount () const |
bool | isDirty () const |
bool | isMeshShading () const |
bool | forceTwoSided () const |
RenderMode | getRenderMode () const |
castor::String const & | getTypeName () const |
RenderPassTypeID | getTypeID () 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 | RenderNodesPass (crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, castor::String const &category, castor::String const &name, RenderNodesPassDesc const &desc) |
Constructeur. 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... | |
virtual C3D_API void | doFillAdditionalBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings) const =0 |
Remplit les attaches de layout de descripteurs spécifiques à une passe de rendu. Plus de détails... | |
virtual C3D_API bool | doAreValidPassFlags (PassFlags const &passFlags) const |
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 PassFlags | doAdjustPassFlags (PassFlags flags) const |
virtual C3D_API ProgramFlags | doAdjustProgramFlags (ProgramFlags flags) const |
virtual C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const |
C3D_API ShaderProgramSPtr | doGetProgram (PipelineFlags const &flags, VkCullModeFlags cullMode=VK_CULL_MODE_NONE) |
Attributs protégés | |
RenderDevice const & | m_device |
RenderSystem & | m_renderSystem |
MatrixUbo & | m_matrixUbo |
SceneCuller & | m_culler |
castor::String | m_typeName |
RenderPassTypeID | m_typeID {} |
RenderQueueUPtr | m_renderQueue |
castor::String | m_category |
castor::Size | m_size |
RenderMode | m_mode { RenderMode::eBoth } |
bool | m_oit { false } |
bool | m_forceTwoSided { false } |
bool | m_safeBand { false } |
bool | m_isDirty { true } |
bool | m_meshShading |
SceneUbo | m_sceneUbo |
uint32_t | m_index { 0u } |
std::map< size_t, PassDescriptors > | m_additionalDescriptors |
|
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] | category | La catégorie de la passe. |
[in] | name | Le nom de la passe. |
[in] | desc | Les données de construction. |
|
override |
Destructeur.
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. |
|
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 | ( | BlendMode | colourBlendMode, |
BlendMode | alphaBlendMode, | ||
PassFlags | passFlags, | ||
RenderPassTypeID | renderPassTypeID, | ||
PassTypeID | passTypeID, | ||
uint32_t | heightTextureIndex, | ||
VkCompareOp | alphaFunc, | ||
VkCompareOp | blendAlphaFunc, | ||
TextureFlagsArray const & | textures, | ||
SubmeshFlags const & | submeshFlags, | ||
ProgramFlags const & | programFlags, | ||
SceneFlags const & | sceneFlags, | ||
VkPrimitiveTopology | topology, | ||
bool | isFrontCulled, | ||
GpuBufferOffsetT< castor::Point4f > const & | morphTargets | ||
) |
Crée les indicateurs de pipeline pour la configuration donnée.
[in] | colourBlendMode | Le mode de mélange de couleurs. |
[in] | alphaBlendMode | Le mode de mélange de l'alpha |
[in] | passFlags | Les pass flags |
[in] | renderPassTypeID | L'ID du type de render pass. |
[in] | passTypeID | L'ID du type de passe de matériau. |
[in] | heightTextureIndex | L'index de la height map (s'il y en a une). |
[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] | morphTargets | Le buffer de morph targets. |
C3D_API PipelineFlags castor3d::RenderNodesPass::createPipelineFlags | ( | Pass const & | pass, |
TextureFlagsArray const & | textures, | ||
SubmeshFlags const & | submeshFlags, | ||
ProgramFlags const & | programFlags, | ||
SceneFlags const & | sceneFlags, | ||
VkPrimitiveTopology | topology, | ||
bool | isFrontCulled, | ||
GpuBufferOffsetT< castor::Point4f > const & | morphTargets | ||
) |
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. |
|
protectedvirtual |
|
protectedvirtual |
Réimplémentée dans castor3d::RenderTechniquePass.
|
protectedvirtual |
Réimplémentée dans castor3d::RenderTechniquePass.
|
protectedvirtual |
|
protectedvirtual |
|
protectedpure virtual |
Remplit les attaches de layout de descripteurs spécifiques à une passe de rendu.
[in,out] | bindings | Reçoit les attaches additionnelles. |
|
protected |
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Met les données spécifiques.
[out] | queues | Reçoit les files de rendu nécessaires pour le dessin de la frame. |
|
protectedvirtual |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
Réimplémentée dans castor3d::RenderTechniquePass.
C3D_API FilteredTextureFlags castor3d::RenderNodesPass::filterTexturesFlags | ( | TextureFlagsArray const & | textures | ) | const |
Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe.
[in] | textures | Les indicateurs de textures. |
|
inline |
Références m_forceTwoSided.
|
inline |
Références m_culler.
|
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 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. |
|
inline |
Références m_matrixUbo.
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. |
|
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_mode.
|
inline |
Références m_sceneUbo.
|
inline |
Références m_sceneUbo.
|
inlinevirtual |
Réimplémentée dans castor3d::VoxelizePass, castor3d::DepthPass, castor3d::PickingPass, castor3d::ShadowMapPass, castor3d::OpaquePass, et castor3d::RenderTechniquePass.
Références castor3d::eTangentSpace, et castor3d::eWorldSpace.
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. |
|
virtual |
name Accesseurs.
Réimplémentée dans castor3d::DepthPass, castor3d::PickingPass, castor3d::ShadowMapPass, castor3d::OpaquePass, et castor3d::TransparentPass.
|
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. |
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.
|
inline |
Références m_meshShading.
|
inline |
Références m_oit.
C3D_API bool castor3d::RenderNodesPass::isPassEnabled | ( | ) | const |
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::RenderTechniquePass, castor3d::VoxelizePass, castor3d::ShadowMapPassDirectional, castor3d::ShadowMapPassPoint, et castor3d::ShadowMapPassSpot.
|
protected |
|
protected |
|
protected |
Référencé par getCuller().
|
protected |
|
protected |
Référencé par forceTwoSided().
|
protected |
|
protected |
Référencé par isDirty().
|
protected |
Référencé par getMatrixUbo().
|
protected |
Référencé par isMeshShading().
|
protected |
Référencé par getRenderMode().
|
protected |
Référencé par isOrderIndependent().
|
protected |
|
protected |
|
protected |
|
protected |
Référencé par getSceneUbo().
|
protected |
|
protected |
Référencé par getTypeID().
|
protected |
Référencé par getTypeName().