![]() |
Castor3D 0.16.0
Multiplatform 3D engine
|
#include <ShadowMapPassDirectional.hpp>
Fonctions membres publiques | |
C3D_API | ShadowMapPassDirectional (crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, CameraUbo const &cameraUbo, SceneCuller &culler, Camera &camera, ShadowMap const &shadowMap, bool needsVsm, bool needsRsm, bool isStatic) |
Constructeur. | |
C3D_API | ~ShadowMapPassDirectional () noexcept override |
Destructeur. | |
C3D_API void | update (CpuUpdater &updater) override |
Met à jour la passe de rendu, au niveau CPU. | |
![]() | |
C3D_API | ShadowMapPass (crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, CameraUbo const &cameraUbo, SceneCuller &culler, ShadowMap const &shadowMap, bool needsVsm, bool needsRsm, bool isStatic) |
Constructeur. | |
C3D_API bool | isPassEnabled () const noexcept override |
C3D_API bool | isUpToDate () const |
ShaderFlags | getShaderFlags () const noexcept override |
void | setUpToDate () |
![]() | |
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 |
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 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 |
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 | 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 bool | doIsValidPass (Pass const &pass) const noexcept |
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 |
RenderQueue & | getRenderQueue () const noexcept |
![]() | |
OwnedBy (Engine &owner) | |
Constructeur. | |
![]() | |
ShadowMap const & | m_shadowMap |
bool | m_initialised { false } |
bool | m_outOfDate { true } |
ShadowMapUbo | m_shadowMapUbo |
bool | m_needsVsm |
bool | m_needsRsm |
![]() | |
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 |
C3D_API castor3d::ShadowMapPassDirectional::ShadowMapPassDirectional | ( | crg::FramePass const & | pass, |
crg::GraphContext & | context, | ||
crg::RunnableGraph & | graph, | ||
RenderDevice const & | device, | ||
CameraUbo const & | cameraUbo, | ||
SceneCuller & | culler, | ||
Camera & | camera, | ||
ShadowMap const & | shadowMap, | ||
bool | needsVsm, | ||
bool | needsRsm, | ||
bool | isStatic ) |
Constructeur.
[in] | pass | La frame pass parente. |
[in] | context | Le contexte de rendu. |
[in] | graph | Le runnable graph. |
[in] | device | Le device GPU. |
[in] | cameraUbo | L'UBO de matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | camera | La caméra pour cette passe. |
[in] | shadowMap | La shadow map parente. |
[in] | needsVsm | Dit si la passe doit générer la variance shadow map. |
[in] | needsRsm | Dit si la passe doit générer les reflective shadow maps. |
[in] | isStatic | Dit si la passe est pour les noeuds statiques. |
|
overridenoexcept |
Destructeur.
|
overridevirtual |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
Réimplémentée à partir de castor3d::RenderNodesPass.
Références castor3d::eNone, castor3d::eShadowMapDirectional, castor3d::eWorldSpace, et castor3d::ShadowMapPass::m_needsRsm.
|
static |