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

Fonctions membres publiques

C3D_API PickingPass (Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler)
 Constructeur. Plus de détails...
 
C3D_API ~PickingPass ()
 Destructeur. Plus de détails...
 
C3D_API void addScene (Scene &scene, Camera &camera)
 Ajoute une scène dessinée via cette technique. Plus de détails...
 
C3D_API PickNodeType pick (RenderDevice const &device, castor::Position position, Camera const &camera)
 Sélectionne la géométrie à la position de souris donnée. Plus de détails...
 
C3D_API TextureFlags getTexturesMask () const override
 
GeometrySPtr getPickedGeometry () const
 
BillboardBaseSPtr getPickedBillboard () const
 
SubmeshSPtr getPickedSubmesh () const
 
uint32_t getPickedFace () const
 
ashes::ImageView const & getResult () const
 
PickNodeType getPickedNodeType () const
 
bool isPicking () 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
 

Attributs publics statiques

static uint32_t constexpr PickingWidth = 32u
 

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::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 doUpdateUbos (CpuUpdater &updater)
 Met à jour la passe de rendu, au niveau CPU. 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...
 
virtual C3D_API ashes::VkDescriptorSetLayoutBindingArray doCreateUboBindings (PipelineFlags const &flags) const
 Crée les attaches de layout de descripteurs communs pour les UBO. Plus de détails...
 
- 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

◆ PickingPass()

C3D_API castor3d::PickingPass::PickingPass ( Engine engine,
MatrixUbo matrixUbo,
SceneCuller culler 
)
explicit

Constructeur.

Paramètres
[in]engineLe moteur.
[in]matrixUboL'UBO de matrices de la scène.
[in]cullerLe culler pour cette passe.

◆ ~PickingPass()

C3D_API castor3d::PickingPass::~PickingPass ( )

Destructeur.

Documentation des fonctions membres

◆ addScene()

C3D_API void castor3d::PickingPass::addScene ( Scene scene,
Camera camera 
)

Ajoute une scène dessinée via cette technique.

Paramètres
[in]sceneLa scène.
[in]cameraLa caméra à travers laquelle la scène est vue.

◆ getPickedBillboard()

BillboardBaseSPtr castor3d::PickingPass::getPickedBillboard ( ) const
inline

◆ getPickedFace()

uint32_t castor3d::PickingPass::getPickedFace ( ) const
inline

◆ getPickedGeometry()

GeometrySPtr castor3d::PickingPass::getPickedGeometry ( ) const
inline

◆ getPickedNodeType()

PickNodeType castor3d::PickingPass::getPickedNodeType ( ) const
inline

◆ getPickedSubmesh()

SubmeshSPtr castor3d::PickingPass::getPickedSubmesh ( ) const
inline

◆ getResult()

ashes::ImageView const& castor3d::PickingPass::getResult ( ) const
inline

◆ getTexturesMask()

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

name Accesseurs.

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

◆ isPicking()

bool castor3d::PickingPass::isPicking ( ) const
inline

◆ pick()

C3D_API PickNodeType castor3d::PickingPass::pick ( RenderDevice const &  device,
castor::Position  position,
Camera const &  camera 
)

Sélectionne la géométrie à la position de souris donnée.

Paramètres
[in]deviceLe device GPU.
[in]positionLa position dans la passe.
[in]cameraLa caméra regardant la scène.
Renvoie
PickingPass::PickNodeType si rien n'a été pické.

Documentation des données membres

◆ PickingWidth

uint32_t constexpr castor3d::PickingPass::PickingWidth = 32u
static

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