Castor3D  0.11.0
Multiplatform 3D engine
Fonctions membres publiques | Liste de tous les membres
Référence de la classe castor3d::OpaquePass
Graphe d'héritage de castor3d::OpaquePass:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::OpaquePass:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API OpaquePass (MatrixUbo &matrixUbo, SceneCuller &culler, SsaoConfig const &config)
 Constructeur. Plus de détails...
 
C3D_API ~OpaquePass ()
 Destructeur. Plus de détails...
 
C3D_API void initialiseRenderPass (RenderDevice const &device, OpaquePassResult const &gpResult)
 Initialise la passe de rendu. Plus de détails...
 
C3D_API void accept (RenderTechniqueVisitor &visitor) override
 Fonction d'acceptation de visiteur. Plus de détails...
 
C3D_API ashes::Semaphore const & render (RenderDevice const &device, ashes::Semaphore const &toWait)
 Dessine les noeuds transparents. Plus de détails...
 
C3D_API TextureFlags getTexturesMask () const override
 
- Fonctions membres publiques hérités de castor3d::RenderTechniquePass
C3D_API bool initialise (RenderDevice const &device, castor::Size const &size, LightVolumePassResult const *lpvResult=nullptr, TextureUnit const *vctFirstBounce=nullptr, TextureUnit const *vctSecondaryBounce=nullptr)
 Initialise la passe. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device, castor::Size const &size, RenderPassTimer &timer, uint32_t index, LightVolumePassResult const *lpvResult=nullptr, TextureUnit const *vctFirstBounce=nullptr, TextureUnit const *vctSecondaryBounce=nullptr)
 Initialise la passe. Plus de détails...
 
C3D_API void update (GpuUpdater &updater)
 Met à jour la passe de rendu, au niveau GPU. Plus de détails...
 
C3D_API void update (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU. Plus de détails...
 
ashes::Semaphore const & getSemaphore () const
 
- Fonctions membres publiques hérités de castor3d::SceneRenderPass
virtual C3D_API ~SceneRenderPass ()=default
 Destructeur. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device, castor::Size const &size)
 Initialise la passe. Plus de détails...
 
C3D_API bool initialise (RenderDevice const &device, castor::Size const &size, RenderPassTimer &timer, uint32_t index)
 Initialise la passe. Plus de détails...
 
C3D_API void cleanup (RenderDevice const &device)
 Nettoie la passe. Plus de détails...
 
C3D_API void update (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU. 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 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 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 PipelineFlags prepareBackPipeline (BlendMode colourBlendMode, BlendMode alphaBlendMode, VkCompareOp alphaFunc, PassFlags const &passFlags, TextureFlagsArray const &textures, uint32_t heightMapIndex, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling. Plus de détails...
 
C3D_API void prepareBackPipeline (PipelineFlags &flags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling. Plus de détails...
 
C3D_API PipelineFlags prepareFrontPipeline (BlendMode colourBlendMode, BlendMode alphaBlendMode, VkCompareOp alphaFunc, PassFlags const &passFlags, TextureFlagsArray const &textures, uint32_t heightMapIndex, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling. Plus de détails...
 
C3D_API void prepareFrontPipeline (PipelineFlags &flags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts)
 Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling. Plus de détails...
 
C3D_API RenderPipelinegetPipelineFront (PipelineFlags flags) const
 Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces avant supprimées. Plus de détails...
 
C3D_API RenderPipelinegetPipelineBack (PipelineFlags flags) const
 Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces arrière supprimées. Plus de détails...
 
C3D_API SkinningRenderNode createSkinningNode (Pass &pass, RenderPipeline &pipeline, Submesh &submesh, Geometry &primitive, AnimatedSkeleton &skeleton)
 Crée un noeud de rendu animé. Plus de détails...
 
C3D_API MorphingRenderNode createMorphingNode (Pass &pass, RenderPipeline &pipeline, Submesh &submesh, Geometry &primitive, AnimatedMesh &mesh)
 Crée un noeud de rendu animé. Plus de détails...
 
C3D_API StaticRenderNode createStaticNode (Pass &pass, RenderPipeline &pipeline, Submesh &submesh, Geometry &primitive)
 Crée un noeud de rendu statique. Plus de détails...
 
C3D_API BillboardRenderNode createBillboardNode (Pass &pass, RenderPipeline &pipeline, BillboardBase &billboard)
 Crée un noeud de rendu statique. Plus de détails...
 
C3D_API void updatePipeline (RenderPipeline &pipeline)
 Met à jour lee pipeline opaque. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, BillboardRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud de billboard. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, MorphingRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud de morphing. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, SkinningRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud de skinning. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, StaticRenderNode &node)
 Initialise l'ensemble de descripteurs d'UBO pour un noeud statique. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshSkinninRenderNodesByPassMap &nodes)
 Initialise l'ensemble de descripteurs d'UBO pour des noeuds de skining. Plus de détails...
 
C3D_API void initialiseUboDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshStaticRenderNodesByPassMap &nodes)
 Initialise l'ensemble de descripteurs d'UBO pour des noeuds statiques. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, BillboardRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud de billboard. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, MorphingRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud de morphing. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, SkinningRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud de skinning. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, StaticRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour un noeud statique. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshSkinninRenderNodesByPassMap &nodes, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour des noeuds de skinning. Plus de détails...
 
C3D_API void initialiseTextureDescriptor (ashes::DescriptorSetPool const &descriptorPool, SubmeshStaticRenderNodesByPassMap &nodes, ShadowMapLightTypeArray const &shadowMaps)
 Initialise l'ensemble de descripteurs de textures pour des noeuds statiques. Plus de détails...
 
C3D_API void updateFlags (PipelineFlags &flags) const
 Modifie les indicateurs donnés pour le faire correspondre au pré-requis de la passe de rendus. Plus de détails...
 
bool isOrderIndependent () const
 
SceneCuller const & getCuller () const
 
SceneCullergetCuller ()
 
SceneUbogetSceneUbo ()
 
SceneUbo const & getSceneUbo () const
 
MatrixUbogetMatrixUbo () const
 
ashes::CommandBuffer const & getCommandBuffer () const
 
bool hasNodes () const
 
ashes::RenderPass const & getRenderPass () const
 
RenderPassTimer const & getTimer () const
 
RenderPassTimergetTimer ()
 
uint32_t getPipelinesCount () const
 
uint32_t getInstanceMult () const
 
bool isDirty () const
 
bool forceTwoSided () const
 

Membres hérités additionnels

- Types publics hérités de castor3d::SceneRenderPass
using DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > >
 
- Fonctions membres publiques statiques hérités de castor3d::SceneRenderPass
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 hérités de castor3d::RenderTechniquePass
C3D_API RenderTechniquePass (castor::String const &category, castor::String const &name, MatrixUbo &matrixUbo, SceneCuller &culler, bool environment, SceneNode const *ignored, SsaoConfig const &ssaoConfig, LpvGridConfigUbo const *lpvConfigUbo=nullptr, LayeredLpvGridConfigUbo const *llpvConfigUbo=nullptr, VoxelizerUbo const *vctConfigUbo=nullptr)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API RenderTechniquePass (castor::String const &category, castor::String const &name, MatrixUbo &matrixUbo, SceneCuller &culler, bool oit, bool environment, SceneNode const *ignored, SsaoConfig const &ssaoConfig, LpvGridConfigUbo const *lpvConfigUbo=nullptr, LayeredLpvGridConfigUbo const *llpvConfigUbo=nullptr, VoxelizerUbo const *vctConfigUbo=nullptr)
 Constructeur pour les noeuds transparents. Plus de détails...
 
virtual C3D_API void doCleanup (RenderDevice const &device) override
 Nettoie la passe. Plus de détails...
 
ashes::VkDescriptorSetLayoutBindingArray doCreateUboBindings (PipelineFlags const &flags) const override
 Crée les attaches de layout de descripteurs communs pour les UBO. Plus de détails...
 
ashes::VkDescriptorSetLayoutBindingArray doCreateTextureBindings (PipelineFlags const &flags) const override
 Crée les attaches de layout de descripteurs communs pour les textures. Plus de détails...
 
ShaderPtr doGetVertexShaderSource (PipelineFlags const &flags) const override
 Récupère le source du vertex shader qui correspond aux indicateurs donnés. Plus de détails...
 
- Fonctions membres protégées hérités de castor3d::SceneRenderPass
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, RenderMode mode, bool oit, bool forceTwoSided, SceneNode const *ignored, uint32_t instanceMult)
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, uint32_t instanceMult=1u)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, bool oit, uint32_t instanceMult=1u)
 Constructeur pour les noeuds transparents. Plus de détails...
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, SceneNode const *ignored, uint32_t instanceMult=1u)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API SceneRenderPass (castor::String const &category, castor::String const &name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, bool oit, SceneNode const *ignored, uint32_t instanceMult=1u)
 Constructeur pour les noeuds transparents. Plus de détails...
 
C3D_API PassRenderNode doCreatePassRenderNode (Pass &pass, RenderPipeline &pipeline)
 Crée un noeud de rendu. Plus de détails...
 
C3D_API SceneRenderNode doCreateSceneRenderNode (Scene &scene, RenderPipeline &pipeline)
 Crée un noeud de rendu de scène. Plus de détails...
 
C3D_API ShaderProgramSPtr doGetProgram (PipelineFlags const &flags) const
 Récupère le programme shader correspondant aux indicateurs donnés. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &matrixBuffer, RenderInfo &info) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodePtrArray const &renderNodes, std::vector< InstantiationData > &matrixBuffer, RenderInfo &info) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesBones (SkinningRenderNodePtrArray const &renderNodes, ShaderBuffer &bonesBuffer) const
 Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesBones (SkinningRenderNodePtrArray const &renderNodes, ShaderBuffer &bonesBuffer, RenderInfo &info) const
 Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API void doUpdate (SubmeshStaticRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (SubmeshStaticRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (StaticRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (StaticRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (SkinningRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (SkinningRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (SubmeshSkinningRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (SubmeshSkinningRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages instanciés. Plus de détails...
 
C3D_API void doUpdate (MorphingRenderNodesPtrByPipelineMap &nodes)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (MorphingRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des sous maillages non instanciés. Plus de détails...
 
C3D_API void doUpdate (BillboardRenderNodesPtrByPipelineMap &nodes)
 Met à jour des billboards. Plus de détails...
 
C3D_API void doUpdate (BillboardRenderNodesPtrByPipelineMap &nodes, RenderInfo &info)
 Met à jour des billboards. Plus de détails...
 
virtual C3D_API void doUpdate (RenderQueueArray &queues)
 Met les données spécifiques. Plus de détails...
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > & doGetFrontPipelines ()
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > & doGetBackPipelines ()
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > const & doGetFrontPipelines () const
 
C3D_API std::map< PipelineFlags, RenderPipelineUPtr > const & doGetBackPipelines () const
 
virtual C3D_API void doPrepareFrontPipeline (ShaderProgramSPtr program, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts, PipelineFlags const &flags)
 Prépare le pipeline de rendu, en supprimant les faces avant. Plus de détails...
 
virtual C3D_API void doPrepareBackPipeline (ShaderProgramSPtr program, ashes::PipelineVertexInputStateCreateInfoCRefArray const &layouts, PipelineFlags const &flags)
 Prépare le pipeline de rendu, en supprimant les faces arrière. Plus de détails...
 
- Attributs protégés hérités de castor3d::RenderTechniquePass
Scene const & m_scene
 
LpvGridConfigUbo const * m_lpvConfigUbo
 
LayeredLpvGridConfigUbo const * m_llpvConfigUbo
 
VoxelizerUbo const * m_vctConfigUbo
 
LightVolumePassResult const * m_lpvResult
 
TextureUnit const * m_vctFirstBounce
 
TextureUnit const * m_vctSecondaryBounce
 
Cameram_camera { nullptr }
 
SceneRenderNode m_sceneNode
 
bool m_environment { false }
 
SsaoConfig m_ssaoConfig
 
ashes::SemaphorePtr m_finished
 
- Attributs protégés hérités de castor3d::SceneRenderPass
RenderSystemm_renderSystem
 
MatrixUbom_matrixUbo
 
SceneCullerm_culler
 
RenderQueue m_renderQueue
 
castor::String m_category
 
RenderMode m_mode { RenderMode::eBoth }
 
bool m_oit { false }
 
bool m_forceTwoSided { false }
 
bool m_isDirty { true }
 
SceneUbo m_sceneUbo
 
ashes::RenderPassPtr m_renderPass
 
RenderPassTimerm_timer { nullptr }
 
uint32_t m_index { 0u }
 
RenderPassTimerSPtr m_ownTimer
 
castor::Size m_size
 
uint32_t const m_instanceMult { 1u }
 
std::map< size_t, UniformBufferOffsetT< ModelInstancesUboConfiguration > > m_modelsInstances
 

Documentation des constructeurs et destructeur

◆ OpaquePass()

C3D_API castor3d::OpaquePass::OpaquePass ( MatrixUbo matrixUbo,
SceneCuller culler,
SsaoConfig const &  config 
)

Constructeur.

Paramètres
[in]matrixUboL'UBO de matrices de la scène.
[in]cullerLe culler pour cette passe.
[in]configLa configuration du SSAO.

◆ ~OpaquePass()

C3D_API castor3d::OpaquePass::~OpaquePass ( )

Destructeur.

Documentation des fonctions membres

◆ accept()

C3D_API void castor3d::OpaquePass::accept ( RenderTechniqueVisitor visitor)
overridevirtual

Fonction d'acceptation de visiteur.

Paramètres
visitorLe ... visiteur.

Réimplémentée à partir de castor3d::RenderTechniquePass.

◆ getTexturesMask()

C3D_API TextureFlags castor3d::OpaquePass::getTexturesMask ( ) const
overridevirtual

name Accesseurs.

Réimplémentée à partir de castor3d::SceneRenderPass.

◆ initialiseRenderPass()

C3D_API void castor3d::OpaquePass::initialiseRenderPass ( RenderDevice const &  device,
OpaquePassResult const &  gpResult 
)

Initialise la passe de rendu.

Paramètres
[in]deviceLe device GPU.
[in]gpResultLes tampons de la geometry pass.

◆ render()

C3D_API ashes::Semaphore const& castor3d::OpaquePass::render ( RenderDevice const &  device,
ashes::Semaphore const &  toWait 
)

Dessine les noeuds transparents.

Paramètres
[in]deviceLe device GPU.
[in]toWaitLe sémaphore de la passe de rendu précédente.

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