Castor3D
..
|
Classe de base d'une passe de technique de rendu. Plus de détails...
Fonctions membres publiques | |
C3D_API | RenderTechniquePass (Castor::String const &p_name, RenderTarget &p_renderTarget, RenderTechnique &p_technique, bool p_opaque, bool p_multisampling=false) |
Constructeur. Plus de détails... | |
virtual C3D_API | ~RenderTechniquePass () |
Destructeur. Plus de détails... | |
C3D_API void | Render (RenderInfo &p_info, bool p_shadows) |
Fonction de rendu. Plus de détails... | |
virtual C3D_API bool | InitialiseShadowMaps ()=0 |
virtual C3D_API void | CleanupShadowMaps ()=0 |
virtual C3D_API void | UpdateShadowMaps (RenderQueueArray &p_queues)=0 |
Met à jour les maps d'ombres. Plus de détails... | |
virtual C3D_API void | RenderShadowMaps ()=0 |
Dessine les maps d'ombres. Plus de détails... | |
![]() | |
virtual C3D_API | ~RenderPass () |
Destructeur. Plus de détails... | |
C3D_API bool | Initialise (Castor::Size const &p_size) |
Initialise la passe. Plus de détails... | |
C3D_API void | Cleanup () |
Nettoie la passe. Plus de détails... | |
C3D_API void | Update (RenderQueueArray &p_queues) |
Met à jour la passe de rendu. Plus de détails... | |
C3D_API Castor::String | GetVertexShaderSource (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags, bool p_invertNormals) const |
Récupère le source du vertex shader qui correspond aux indicateurs donnés. Plus de détails... | |
C3D_API Castor::String | GetPixelShaderSource (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags) const |
Récupère le source du pixel shader qui correspond aux indicateurs donnés. Plus de détails... | |
C3D_API Castor::String | GetGeometryShaderSource (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_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 p_colourBlendMode, BlendMode p_alphaBlendMode, TextureChannels &p_textureFlags, ProgramFlags &p_programFlags, SceneFlags &p_sceneFlags, bool p_twoSided) |
Prépare le pipeline qui correspond aux indicateurs donnés. Plus de détails... | |
C3D_API RenderPipeline * | GetPipelineFront (BlendMode p_colourBlendMode, BlendMode p_alphaBlendMode, TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags) |
Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces avant supprimées. Plus de détails... | |
C3D_API RenderPipeline * | GetPipelineBack (BlendMode p_colourBlendMode, BlendMode p_alphaBlendMode, TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags) |
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 &p_pass, RenderPipeline &p_pipeline, Submesh &p_submesh, Geometry &p_primitive, AnimatedSkeleton &p_skeleton) |
Crée un noeud de rendu animé. Plus de détails... | |
C3D_API MorphingRenderNode | CreateMorphingNode (Pass &p_pass, RenderPipeline &p_pipeline, Submesh &p_submesh, Geometry &p_primitive, AnimatedMesh &p_mesh) |
Crée un noeud de rendu animé. Plus de détails... | |
C3D_API StaticRenderNode | CreateStaticNode (Pass &p_pass, RenderPipeline &p_pipeline, Submesh &p_submesh, Geometry &p_primitive) |
Crée un noeud de rendu statique. Plus de détails... | |
C3D_API BillboardRenderNode | CreateBillboardNode (Pass &p_pass, RenderPipeline &p_pipeline, BillboardBase &p_billboard) |
Crée un noeud de rendu statique. Plus de détails... | |
C3D_API void | UpdatePipeline (RenderPipeline &p_pipeline) const |
Met à jour lee pipeline opaque. Plus de détails... | |
bool | IsMultisampling () const |
Attributs protégés | |
RenderTarget & | m_target |
RenderTechnique & | m_technique |
SceneRenderNode | m_sceneNode |
![]() | |
RenderSystem & | m_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_multisampling { false } |
UniformBuffer | m_sceneUbo |
UniformBuffer | m_matrixUbo |
Uniform4x4fSPtr | m_projectionUniform { nullptr } |
Uniform4x4fSPtr | m_viewUniform { nullptr } |
UniformBuffer | m_modelMatrixUbo |
UniformBuffer | m_passUbo |
std::unique_ptr< PassRenderNodeUniforms > | m_passNode |
UniformBuffer | m_modelUbo |
UniformBuffer | m_billboardUbo |
UniformBuffer | m_skinningUbo |
UniformBuffer | m_morphingUbo |
Membres hérités additionnels | |
![]() | |
using | DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > > |
![]() | |
C3D_API | RenderPass (Castor::String const &p_name, Engine &p_engine, bool p_opaque, bool p_multisampling=false) |
Constructeur. Plus de détails... | |
C3D_API PassRenderNode | DoCreatePassRenderNode (Pass &p_pass, RenderPipeline &p_pipeline) |
Crée un noeud de rendu. Plus de détails... | |
C3D_API SceneRenderNode | DoCreateSceneRenderNode (Scene &p_scene, RenderPipeline &p_pipeline) |
Crée un noeud de rendu de scène. Plus de détails... | |
C3D_API ShaderProgramSPtr | DoGetProgram (TextureChannels const &p_textureFlags, ProgramFlags const &p_programFlags, SceneFlags const &p_sceneFlags, bool p_invertNormals) const |
Récupère le programme shader correspondant aux flags donnés. Plus de détails... | |
C3D_API uint32_t | DoCopyNodesMatrices (StaticRenderNodeArray const &p_renderNodes, VertexBuffer &p_matrixBuffer) |
Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails... | |
C3D_API uint32_t | DoCopyNodesMatrices (StaticRenderNodeArray const &p_renderNodes, VertexBuffer &p_matrixBuffer, RenderInfo &p_info) |
Copie les matrices de noeuds instanciés dans le tampon de matrices donné. Plus de détails... | |
C3D_API void | DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes) |
Dessine des sous maillages instanciés. Plus de détails... | |
C3D_API void | DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps) |
Dessine des sous maillages instanciés. Plus de détails... | |
C3D_API void | DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera) |
Dessine des sous maillages instanciés. Plus de détails... | |
C3D_API void | DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps) |
Dessine des sous maillages instanciés. Plus de détails... | |
C3D_API void | DoRenderInstancedSubmeshes (SubmeshStaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info) |
Dessine des sous maillages instanciés. Plus de détails... | |
C3D_API void | DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderStaticSubmeshes (StaticRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, Camera const &p_camera) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderSkinningSubmeshes (SkinningRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, Camera const &p_camera) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderMorphingSubmeshes (MorphingRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info) |
Dessine des sous maillages non instanciés. Plus de détails... | |
C3D_API void | DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes) |
Dessine des billboards. Plus de détails... | |
C3D_API void | DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, DepthMapArray &p_depthMaps) |
Dessine des billboards. Plus de détails... | |
C3D_API void | DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, Camera const &p_camera) |
Dessine des billboards. Plus de détails... | |
C3D_API void | DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps) |
Dessine des billboards. Plus de détails... | |
C3D_API void | DoRenderBillboards (BillboardRenderNodesByPipelineMap &p_nodes, Camera const &p_camera, DepthMapArray &p_depthMaps, RenderInfo &p_info) |
Dessine des billboards. Plus de détails... | |
Classe de base d'une passe de technique de rendu.
C3D_API Castor3D::RenderTechniquePass::RenderTechniquePass | ( | Castor::String const & | p_name, |
RenderTarget & | p_renderTarget, | ||
RenderTechnique & | p_technique, | ||
bool | p_opaque, | ||
bool | p_multisampling = false |
||
) |
Constructeur.
[in] | p_name | Le nom de la technique. |
[in] | p_renderTarget | La render target pour cette technique. |
[in] | p_technique | La technique de rendu parente. |
[in] | p_opaque | Dit si cette passe de rendu est pour les noeuds opaques. |
[in] | p_multisampling | Le statut de multiéchantillonnage. |
|
virtual |
Destructeur.
|
pure virtual |
Implémenté dans Castor3D::ForwardRenderTechniquePass.
|
pure virtual |
Implémenté dans Castor3D::ForwardRenderTechniquePass.
C3D_API void Castor3D::RenderTechniquePass::Render | ( | RenderInfo & | p_info, |
bool | p_shadows | ||
) |
Fonction de rendu.
[out] | p_info | Reçoit les informations de rendu. |
[out] | p_shadows | Dit si la scène a des lumières produisant des ombres. |
|
pure virtual |
Dessine les maps d'ombres.
Implémenté dans Castor3D::ForwardRenderTechniquePass.
|
pure virtual |
Met à jour les maps d'ombres.
[out] | p_queues | Reçoit les files de rendu nécessaires pour le dessin de la frame. |
Implémenté dans Castor3D::ForwardRenderTechniquePass.
|
protected |
Le noeud de rendu de la scène.
|
protected |
La cible de rendu parente.
|
protected |
La technique de rendu parente.