![]() |
Castor3D
0.11.0
Multiplatform 3D engine
|
Fonctions membres publiques | |
C3D_API | ShadowMapPass (castor::String name, Engine &engine, MatrixUbo &matrixUbo, SceneCuller &culler, ShadowMap const &shadowMap) |
Constructeur. Plus de détails... | |
virtual C3D_API bool | update (CpuUpdater &updater)=0 |
Met à jour la passe de rendu, au niveau CPU. Plus de détails... | |
virtual C3D_API void | update (GpuUpdater &updater)=0 |
Met à jour la passe de rendu, au niveau GPU. Plus de détails... | |
RenderPassTimer & | getTimer () |
bool | isUpToDate () const |
void | setUpToDate () |
C3D_API TextureFlags | getTexturesMask () const override |
![]() | |
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 RenderPipeline * | getPipelineFront (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 RenderPipeline * | getPipelineBack (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 |
SceneCuller & | getCuller () |
SceneUbo & | getSceneUbo () |
SceneUbo const & | getSceneUbo () const |
MatrixUbo & | getMatrixUbo () const |
ashes::CommandBuffer const & | getCommandBuffer () const |
bool | hasNodes () const |
ashes::RenderPass const & | getRenderPass () const |
RenderPassTimer const & | getTimer () const |
RenderPassTimer & | getTimer () |
uint32_t | getPipelinesCount () const |
uint32_t | getInstanceMult () const |
bool | isDirty () const |
bool | forceTwoSided () const |
Fonctions membres protégées | |
void | doUpdateNodes (SceneCulledRenderNodes &nodes) |
Met à jour les noeuds donnés. 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... | |
![]() | |
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... | |
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... | |
virtual C3D_API ashes::PipelineDepthStencilStateCreateInfo | doCreateDepthStencilState (PipelineFlags const &flags) const =0 |
Crée l'attache de profondeur et stencil. Plus de détails... | |
virtual C3D_API ashes::PipelineColorBlendStateCreateInfo | doCreateBlendState (PipelineFlags const &flags) const =0 |
Crée l'attache de mélange des couleurs. Plus de détails... | |
virtual C3D_API void | doCleanup (RenderDevice const &device)=0 |
Nettoie la passe. Plus de détails... | |
virtual C3D_API bool | doInitialise (RenderDevice const &device, castor::Size const &size)=0 |
Initialise la passe. Plus de détails... | |
virtual C3D_API void | doFillUboDescriptor (ashes::DescriptorSetLayout const &layout, BillboardListRenderNode &node)=0 |
Initialise l'ensemble de descripteurs pour un noeud de billboard. Plus de détails... | |
virtual C3D_API void | doFillUboDescriptor (ashes::DescriptorSetLayout const &layout, SubmeshRenderNode &node)=0 |
Initialise l'ensemble de descripteurs pour un noeud de morphing. Plus de détails... | |
Attributs protégés | |
ShadowMap const & | m_shadowMap |
bool | m_initialised { false } |
bool | m_outOfDate { true } |
ShadowMapUbo | m_shadowMapUbo |
![]() | |
RenderSystem & | m_renderSystem |
MatrixUbo & | m_matrixUbo |
SceneCuller & | m_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 |
RenderPassTimer * | m_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 |
Membres hérités additionnels | |
![]() | |
using | DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > > |
![]() | |
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... | |
C3D_API castor3d::ShadowMapPass::ShadowMapPass | ( | castor::String | name, |
Engine & | engine, | ||
MatrixUbo & | matrixUbo, | ||
SceneCuller & | culler, | ||
ShadowMap const & | shadowMap | ||
) |
Constructeur.
[in] | name | Le nom de la passe. |
[in] | engine | Le moteur. |
[in] | matrixUbo | L'UBO de matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | shadowMap | La shadow map parente. |
|
overrideprotectedvirtual |
Crée les attaches de layout de descripteurs communs pour les textures.
[in] | flags | Les indicateurs de pipeline. |
Implémente castor3d::SceneRenderPass.
|
protected |
Met à jour les noeuds donnés.
nodes | Les noeuds. |
|
inlineoverridevirtual |
name Accesseurs.
Réimplémentée à partir de castor3d::SceneRenderPass.
Références castor3d::ShadowMap::textureFlags.
|
inline |
Références castor3d::SceneRenderPass::m_timer.
|
inline |
Références m_outOfDate.
|
inline |
Références m_outOfDate.
|
pure virtual |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
Implémenté dans castor3d::ShadowMapPassPoint, castor3d::ShadowMapPassDirectional, et castor3d::ShadowMapPassSpot.
|
pure virtual |
Met à jour la passe de rendu, au niveau GPU.
[in,out] | updater | Les données d'update. |
Implémenté dans castor3d::ShadowMapPassPoint, castor3d::ShadowMapPassDirectional, et castor3d::ShadowMapPassSpot.
|
mutableprotected |
|
protected |
Référencé par isUpToDate(), et setUpToDate().
|
protected |
|
protected |