![]() |
Castor3D 0.16.0
Multiplatform 3D engine
|
#include <DepthPass.hpp>
Fonctions membres publiques | |
C3D_API | DepthPass (RenderTechnique *parent, crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, crg::ImageViewIdArray targetDepth, SsaoConfig const &ssaoConfig, RenderNodesPassDesc const &renderPassDesc) |
Constructeur. | |
C3D_API ShaderFlags | getShaderFlags () const noexcept override |
![]() | |
C3D_API void | accept (RenderTechniqueVisitor &visitor) override |
Fonction d'acceptation de visiteur. | |
C3D_API void | update (CpuUpdater &updater) override |
Met à jour la passe de rendu, au niveau CPU. | |
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 *submeshData) const override |
Crée les indicateurs de pipeline pour la configuration donnée. | |
C3D_API ShaderFlags | getShaderFlags () const noexcept override |
C3D_API void | countNodes (RenderInfo &info) const noexcept override |
Enregistre les comptes de noeuds dans le RenderInfo donné. | |
C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const noexcept override |
C3D_API bool | isPassEnabled () const noexcept override |
Engine * | getEngine () const noexcept |
Scene const & | getScene () const noexcept |
RenderTechnique const & | getTechnique () const noexcept |
DebugConfig & | getDebugConfig () const noexcept |
ClustersConfig const * | getClustersConfig () const noexcept override |
bool | hasSsao () const noexcept override |
bool | areDebugTargetsEnabled () const noexcept override |
![]() | |
C3D_API | ~RenderNodesPass () noexcept override |
Destructeur. | |
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 |
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 Scene & | getScene () 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 |
SceneCuller & | getCuller () 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 |
![]() | |
Engine * | getOwner () const |
L'objet propriétaire. | |
![]() | |
NamedBaseT (T name) noexcept | |
Constructeur. | |
T const & | getName () const noexcept |
Récupère le nom. | |
void | rename (T name) noexcept |
![]() | |
virtual C3D_API | ~RenderTechniquePass () noexcept=default |
C3D_API Engine * | getEngine () const noexcept |
C3D_API IndirectLightingData const & | getIndirectLighting () const noexcept |
C3D_API DebugConfig & | getDebugConfig () const noexcept |
C3D_API bool | areDebugTargetsEnabled () const noexcept |
Scene const & | getScene () noexcept |
Scene const & | getScene () const noexcept |
RenderTechnique const & | getTechnique () const noexcept |
Attributs publics statiques | |
static C3D_API castor::String const | Type |
Membres hérités additionnels | |
![]() | |
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) |
![]() | |
RenderNodesPassChangeSignal | onSortNodes |
![]() | |
C3D_API | RenderTechniqueNodesPass (RenderTechnique *parent, 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 &renderPassDesc, RenderTechniquePassDesc const &techniquePassDesc) |
Constructeur. | |
C3D_API void | doAccept (castor3d::RenderTechniqueVisitor &visitor) override |
Fonction d'acceptation de visiteur. | |
C3D_API ProgramFlags | doAdjustProgramFlags (ProgramFlags flags) const override |
C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const override |
C3D_API void | doAddEnvBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
C3D_API void | doAddGIBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
C3D_API void | doAddPassSpecificsBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
C3D_API void | doAddEnvDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
C3D_API void | doAddGIDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
C3D_API void | doAddPassSpecificsDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
![]() | |
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 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 |
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 |
RenderQueue & | getRenderQueue () const noexcept |
![]() | |
OwnedBy (Engine &owner) | |
Constructeur. | |
![]() | |
C3D_API | RenderTechniquePass (RenderTechnique *parent, Scene const &scene, bool outputScattering) |
Constructeur. | |
![]() | |
Camera * | m_camera { nullptr } |
ShaderFlags | m_shaderFlags {} |
SsaoConfig const * | m_ssaoConfig {} |
Texture const * | m_ssao {} |
IndirectLightingData | m_indirectLighting |
ClustersConfig const * | m_clustersConfig {} |
![]() | |
RenderDevice const & | m_device |
RenderSystem & | m_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 {} |
![]() | |
T | m_name |
![]() | |
RenderTechnique * | m_parent {} |
Scene const & | m_scene |
uint32_t | m_drawCalls {} |
bool | m_outputScattering {} |
C3D_API castor3d::DepthPass::DepthPass | ( | RenderTechnique * | parent, |
crg::FramePass const & | pass, | ||
crg::GraphContext & | context, | ||
crg::RunnableGraph & | graph, | ||
RenderDevice const & | device, | ||
crg::ImageViewIdArray | targetDepth, | ||
SsaoConfig const & | ssaoConfig, | ||
RenderNodesPassDesc const & | renderPassDesc ) |
Constructeur.
[in] | parent | La technique parente. |
[in] | pass | La frame pass parente. |
[in] | context | Le contexte de rendu. |
[in] | graph | Le runnable graph. |
[in] | device | Le device GPU. |
targetDepth | Les textures profondeur cibles. | |
[in] | ssaoConfig | La configuration du SSAO. |
[in] | renderPassDesc | La description de la passe de rendu. |
|
overridevirtualnoexcept |
Réimplémentée à partir de castor3d::RenderNodesPass.
|
static |