![]() |
Castor3D
0.11.0
Multiplatform 3D engine
|
Fonctions membres publiques | |
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... | |
virtual C3D_API void | accept (RenderTechniqueVisitor &visitor) |
Fonction d'acceptation de visiteur. 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 |
![]() | |
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... | |
virtual C3D_API TextureFlags | getTexturesMask () const |
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 | |
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... | |
![]() | |
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... | |
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... | |
|
protected |
Constructeur pour les noeuds opaques.
[in] | category | La catégorie de la passe. |
[in] | name | Le nom de la passe. |
[in] | matrixUbo | L'UBO de matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | environment | Passe utilisée pour le rendu d'une texture d'environnement. |
[in] | ignored | Les géométries attachées à ce noeud seront ignorées lors du rendu. |
[in] | ssaoConfig | La configuration du SSAO. |
[in] | lpvConfigUbo | La configuration des LPV, si nécessaire. |
[in] | llpvConfigUbo | La configuration des Layered LPV, si nécessaire. |
[in] | vctConfigUbo | La configuration du VCT, si nécessaire. |
|
protected |
Constructeur pour les noeuds transparents.
[in] | category | La catégorie de la passe. |
[in] | name | Le nom de la technique. |
[in] | matrixUbo | L'UBO de matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | oit | Le statut d'OIT. |
[in] | environment | Passe utilisée pour le rendu d'une texture d'environnement. |
[in] | ignored | Les géométries attachées à ce noeud seront ignorées lors du rendu. |
[in] | ssaoConfig | La configuration du SSAO. |
[in] | lpvConfigUbo | La configuration des LPV, si nécessaire. |
[in] | llpvConfigUbo | La configuration des Layered LPV, si nécessaire. |
[in] | vctConfigUbo | La configuration du VCT, si nécessaire. |
|
virtual |
Fonction d'acceptation de visiteur.
visitor | Le ... visiteur. |
Réimplémentée dans castor3d::ForwardRenderTechniquePass, castor3d::TransparentPass, et castor3d::OpaquePass.
|
overrideprotectedvirtual |
Nettoie la passe.
Implémente castor3d::SceneRenderPass.
Réimplémentée dans castor3d::ForwardRenderTechniquePass, et castor3d::DepthPass.
|
overrideprotectedvirtual |
Crée les attaches de layout de descripteurs communs pour les textures.
[in] | flags | Les indicateurs de pipeline. |
Implémente castor3d::SceneRenderPass.
|
overrideprotectedvirtual |
Crée les attaches de layout de descripteurs communs pour les UBO.
[in] | flags | Les indicateurs de pipeline. |
Réimplémentée à partir de castor3d::SceneRenderPass.
|
overrideprotectedvirtual |
Récupère le source du vertex shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
Réimplémentée à partir de castor3d::SceneRenderPass.
|
inline |
name Accesseurs.
Références m_finished.
C3D_API bool castor3d::RenderTechniquePass::initialise | ( | RenderDevice const & | device, |
castor::Size const & | size, | ||
LightVolumePassResult const * | lpvResult = nullptr , |
||
TextureUnit const * | vctFirstBounce = nullptr , |
||
TextureUnit const * | vctSecondaryBounce = nullptr |
||
) |
Initialise la passe.
[in] | device | Le device actuel. |
[in] | size | Les dimensions voulues pour la passe. |
[in] | lpvResult | Le résultat du LPV, si nécessaire. |
[in] | vctFirstBounce | Le résultat du premier rebond de VCT, si nécessaire. |
[in] | vctSecondaryBounce | Le résultat du second rebond de VCT, si nécessaire. |
true
si tout s'est bien passé. C3D_API bool castor3d::RenderTechniquePass::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.
[in] | device | Le device GPU. |
[in] | size | Les dimensions voulues pour la passe. |
[in] | timer | Le timer parent. |
[in] | index | L'indice de la passe, dans le parent. |
[in] | lpvResult | Le résultat du LPV, si nécessaire. |
[in] | vctFirstBounce | Le résultat du premier rebond de VCT, si nécessaire. |
[in] | vctSecondaryBounce | Le résultat du second rebond de VCT, si nécessaire. |
true
si tout s'est bien passé. C3D_API void castor3d::RenderTechniquePass::update | ( | GpuUpdater & | updater | ) |
Met à jour la passe de rendu, au niveau GPU.
[in,out] | updater | Les données d'update. |
C3D_API void castor3d::SceneRenderPass::update |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
|
protected |
|
protected |
|
protected |
Référencé par getSemaphore().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |