Castor3D  ..
Types publics | Fonctions membres publiques | Liste de tous les membres
Référence de la classe castor3d::PickingPass

Passe de picking, utilisant les FBO. Plus de détails...

+ Graphe d'héritage de castor3d::PickingPass:
+ Graphe de collaboration de castor3d::PickingPass:

Types publics

enum  NodeType : uint8_t {
  NodeType::eNone, NodeType::eStatic, NodeType::eInstantiatedStatic, NodeType::eSkinning,
  NodeType::eInstantiatedSkinning, NodeType::eMorphing, NodeType::eBillboard
}
 
- Types publics hérités de castor3d::RenderPass
using DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > >
 

Fonctions membres publiques

C3D_API PickingPass (Engine &engine)
 Constructeur. Plus de détails...
 
C3D_API ~PickingPass ()
 Destructeur. Plus de détails...
 
C3D_API void addScene (Scene &p_scene, Camera &p_camera)
 Ajoute une scène dessinée via cette technique. Plus de détails...
 
C3D_API NodeType pick (castor::Position const &p_position, Camera const &p_camera)
 Sélectionne la géométrie à la position de souris donnée. Plus de détails...
 
GeometrySPtr getPickedGeometry () const
 
BillboardBaseSPtr getPickedBillboard () const
 
SubmeshSPtr getPickedSubmesh () const
 
uint32_t getPickedFace () const
 
- Fonctions membres publiques hérités de castor3d::RenderPass
virtual C3D_API ~RenderPass ()
 Destructeur. Plus de détails...
 
C3D_API bool initialise (castor::Size const &size)
 Initialise la passe. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie la passe. Plus de détails...
 
C3D_API void update (RenderQueueArray &queues)
 Met à jour la passe de rendu. Plus de détails...
 
C3D_API glsl::Shader getVertexShaderSource (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, bool invertNormals) const
 Récupère le source du vertex shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API glsl::Shader getPixelShaderSource (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, ComparisonFunc alphaFunc) const
 Récupère le source du pixel shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API glsl::Shader getGeometryShaderSource (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags) const
 Récupère le source du geometry shader qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API void preparePipeline (BlendMode colourBlendMode, BlendMode alphaBlendMode, ComparisonFunc alphaFunc, PassFlags &passFlags, TextureChannels &textureFlags, ProgramFlags &programFlags, SceneFlags &sceneFlags, bool twoSided)
 Prépare le pipeline qui correspond aux indicateurs donnés. Plus de détails...
 
C3D_API RenderPipelinegetPipelineFront (BlendMode colourBlendMode, BlendMode alphaBlendMode, ComparisonFunc alphaFunc, PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags) 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 (BlendMode colourBlendMode, BlendMode alphaBlendMode, ComparisonFunc alphaFunc, PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags) 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) const
 Met à jour lee pipeline opaque. Plus de détails...
 
C3D_API void updateFlags (PassFlags &passFlags, TextureChannels &textureFlags, ProgramFlags &programFlags, SceneFlags &sceneFlags) 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
 
SceneUbogetSceneUbo ()
 

Membres hérités additionnels

- Fonctions membres protégées hérités de castor3d::RenderPass
C3D_API RenderPass (castor::String const &name, Engine &engine, SceneNode const *ignored)
 Constructeur pour les noeuds opaques. Plus de détails...
 
C3D_API RenderPass (castor::String const &name, Engine &engine, bool oit, SceneNode const *ignored)
 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 (PassFlags const &passFlags, TextureChannels const &textureFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, ComparisonFunc alphaFunc, bool invertNormals) const
 Récupère le programme shader correspondant aux flags donnés. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, VertexBuffer &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 (SkinningRenderNodeArray const &renderNodes, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodeArray const &renderNodes, VertexBuffer &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 (StaticRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (StaticRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &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 (SkinningRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &matrixBuffer) const
 Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails...
 
C3D_API uint32_t doCopyNodesMatrices (SkinningRenderNodeArray const &renderNodes, Camera const &camera, VertexBuffer &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 (SkinningRenderNodeArray const &renderNodes, ShaderStorageBuffer &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 (SkinningRenderNodeArray const &renderNodes, ShaderStorageBuffer &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 doRender (SubmeshStaticRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshStaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (StaticRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (SubmeshSkinningRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (MorphingRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des sous maillages non instanciés. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, Camera const &camera) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps) const
 Dessine des billboards. Plus de détails...
 
C3D_API void doRender (BillboardRenderNodesByPipelineMap &nodes, Camera const &camera, ShadowMapLightTypeArray &shadowMaps, RenderInfo &info) const
 Dessine des billboards. Plus de détails...
 
- Attributs protégés hérités de castor3d::RenderPass
RenderSystemm_renderSystem
 
RenderQueue m_renderQueue
 
bool m_opaque { false }
 
std::map< PipelineFlags, RenderPipelineUPtr > m_frontPipelines
 
std::map< PipelineFlags, RenderPipelineUPtr > m_backPipelines
 
std::set< GeometryBuffersSPtr > m_geometryBuffers
 
bool m_oit { false }
 
SceneUbo m_sceneUbo
 
MatrixUbo m_matrixUbo
 
ModelUbo m_modelUbo
 
ModelMatrixUbo m_modelMatrixUbo
 
BillboardUbo m_billboardUbo
 
SkinningUbo m_skinningUbo
 
MorphingUbo m_morphingUbo
 
RenderPassTimerSPtr m_timer
 

Description détaillée

Passe de picking, utilisant les FBO.

Auteur
Sylvain DOREMUS
Version
0.9.0
Date
30/08/2016

Documentation des énumérations membres

◆ NodeType

enum castor3d::PickingPass::NodeType : uint8_t
strong
Valeurs énumérées
eNone 
eStatic 
eInstantiatedStatic 
eSkinning 
eInstantiatedSkinning 
eMorphing 
eBillboard 

Documentation des constructeurs et destructeur

◆ PickingPass()

C3D_API castor3d::PickingPass::PickingPass ( Engine engine)
explicit

Constructeur.

Paramètres
[in]engineLe moteur.

◆ ~PickingPass()

C3D_API castor3d::PickingPass::~PickingPass ( )

Destructeur.

Documentation des fonctions membres

◆ addScene()

C3D_API void castor3d::PickingPass::addScene ( Scene p_scene,
Camera p_camera 
)

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

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

◆ getPickedBillboard()

BillboardBaseSPtr castor3d::PickingPass::getPickedBillboard ( ) const
inline
Renvoie
Le billboard sélectionné.

◆ getPickedFace()

uint32_t castor3d::PickingPass::getPickedFace ( ) const
inline
Renvoie
L'indice de la face sélectionnée.

◆ getPickedGeometry()

GeometrySPtr castor3d::PickingPass::getPickedGeometry ( ) const
inline
Renvoie
La géométrie sélectionnée.

◆ getPickedSubmesh()

SubmeshSPtr castor3d::PickingPass::getPickedSubmesh ( ) const
inline
Renvoie
Le sous-maillage sélectionné.

◆ pick()

C3D_API NodeType castor3d::PickingPass::pick ( castor::Position const &  p_position,
Camera const &  p_camera 
)

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

Paramètres
[in]p_positionLa position dans la passe.
[in]p_cameraLa caméra regardant la scène.
Renvoie
PickingPass::NodeType si rien n'a été pické.

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