Castor3D
0.11.0
Multiplatform 3D engine
|
Classes | |
struct | VertexInputs |
struct | VertexOutputs |
Types publics | |
using | DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > > |
Fonctions membres publiques | |
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 publiques statiques | |
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 | |
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::VkDescriptorSetLayoutBindingArray | doCreateTextureBindings (PipelineFlags const &flags) const =0 |
Crée les attaches de layout de descripteurs communs pour les textures. 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... | |
virtual C3D_API void | doFillTextureDescriptor (ashes::DescriptorSetLayout const &layout, uint32_t &index, BillboardListRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)=0 |
Initialise l'ensemble de descripteurs pour un noeud de billboard. Plus de détails... | |
virtual C3D_API void | doFillTextureDescriptor (ashes::DescriptorSetLayout const &layout, uint32_t &index, SubmeshRenderNode &node, ShadowMapLightTypeArray const &shadowMaps)=0 |
Initialise l'ensemble de descripteurs pour un noeud de morphing. Plus de détails... | |
Attributs protégés | |
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 |
using castor3d::SceneRenderPass::DistanceSortedNodeMap = std::multimap< double, std::unique_ptr< DistanceRenderNodeBase > > |
|
protected |
|
protected |
Constructeur pour les noeuds opaques.
[in] | category | La catégorie de la passe. |
[in] | name | Le nom de la passe. |
[in] | engine | Le moteur. |
[in] | matrixUbo | L'UBO des matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | instanceMult | Le multiplicateur d'instances d'objets. |
|
protected |
Constructeur pour les noeuds transparents.
[in] | category | La catégorie de la passe. |
[in] | name | Le nom de la passe. |
[in] | engine | Le moteur. |
[in] | matrixUbo | L'UBO des matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | oit | Le statut de rendu indépendant de l'ordre des objets. |
[in] | instanceMult | Le multiplicateur d'instances d'objets. |
|
protected |
Constructeur pour les noeuds opaques.
[in] | category | La catégorie de la passe. |
[in] | name | Le nom de la passe. |
[in] | engine | Le moteur. |
[in] | matrixUbo | L'UBO des matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | ignored | Les géométries attachées à ce noeud seront ignorées lors du rendu. |
[in] | instanceMult | Le multiplicateur d'instances d'objets. |
|
protected |
Constructeur pour les noeuds transparents.
[in] | category | La catégorie de la passe. |
[in] | name | Le nom de la passe. |
[in] | engine | Le moteur. |
[in] | matrixUbo | L'UBO des matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | oit | Le statut de rendu indépendant de l'ordre des objets. |
[in] | ignored | Les géométries attachées à ce noeud seront ignorées lors du rendu. |
[in] | instanceMult | Le multiplicateur d'instances d'objets. |
|
virtualdefault |
Destructeur.
C3D_API void castor3d::SceneRenderPass::cleanup | ( | RenderDevice const & | device | ) |
Nettoie la passe.
device | Le device actuel. |
C3D_API BillboardRenderNode castor3d::SceneRenderPass::createBillboardNode | ( | Pass & | pass, |
RenderPipeline & | pipeline, | ||
BillboardBase & | billboard | ||
) |
Crée un noeud de rendu statique.
[in] | pass | La passe. |
[in] | pipeline | Le pipeline. |
[in] | billboard | Le billboard. |
|
static |
Crée un état de mélange correspondant aux modes de mélange donnés.
[in] | colourBlendMode | Le mode de mélange couleurs. |
[in] | alphaBlendMode | Le mode de mélange alpha. |
[in] | attachesCount | Le nombre d'attaches de mélange voulues. |
C3D_API MorphingRenderNode castor3d::SceneRenderPass::createMorphingNode | ( | Pass & | pass, |
RenderPipeline & | pipeline, | ||
Submesh & | submesh, | ||
Geometry & | primitive, | ||
AnimatedMesh & | mesh | ||
) |
Crée un noeud de rendu animé.
[in] | pass | La passe. |
[in] | pipeline | Le pipeline. |
[in] | submesh | Le sous-maillage. |
[in] | primitive | La géométrie. |
[in] | mesh | Le maillage animé. |
C3D_API SkinningRenderNode castor3d::SceneRenderPass::createSkinningNode | ( | Pass & | pass, |
RenderPipeline & | pipeline, | ||
Submesh & | submesh, | ||
Geometry & | primitive, | ||
AnimatedSkeleton & | skeleton | ||
) |
Crée un noeud de rendu animé.
[in] | pass | La passe. |
[in] | pipeline | Le pipeline. |
[in] | submesh | Le sous-maillage. |
[in] | primitive | La géométrie. |
[in] | skeleton | Le squelette animé. |
C3D_API StaticRenderNode castor3d::SceneRenderPass::createStaticNode | ( | Pass & | pass, |
RenderPipeline & | pipeline, | ||
Submesh & | submesh, | ||
Geometry & | primitive | ||
) |
Crée un noeud de rendu statique.
[in] | pass | La passe. |
[in] | pipeline | Le pipeline. |
[in] | submesh | Le sous-maillage. |
[in] | primitive | La géométrie. |
|
protectedpure virtual |
Nettoie la passe.
Implémenté dans castor3d::RenderTechniquePass, castor3d::ForwardRenderTechniquePass, et castor3d::DepthPass.
|
protected |
Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné.
[in] | renderNodes | Les noeuds instanciés. |
[in] | bonesBuffer | Le tampon de matrices des os. |
|
protected |
Copie les matrices de noeuds skinnés instanciés dans le tampon de matrices donné.
[in] | renderNodes | Les noeuds instanciés. |
[in] | bonesBuffer | Le tampon de matrices des os. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Copie les matrices de noeuds instanciés dans le tampon de matrices donné.
[in] | renderNodes | Les noeuds instanciés. |
[in] | matrixBuffer | Le tampon de matrices. |
|
protected |
Copie les matrices de noeuds instanciés dans le tampon de matrices donné.
[in] | renderNodes | Les noeuds instanciés. |
[in] | matrixBuffer | Le tampon de matrices. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Copie les matrices de noeuds instanciés dans le tampon de matrices donné.
[in] | renderNodes | Les noeuds instanciés. |
[in] | matrixBuffer | Le tampon de matrices. |
|
protected |
Copie les matrices de noeuds instanciés dans le tampon de matrices donné.
[in] | renderNodes | Les noeuds instanciés. |
[in] | matrixBuffer | Le tampon de matrices. |
[in,out] | info | Reçoit les informations de rendu. |
|
protectedpure virtual |
Crée l'attache de mélange des couleurs.
[in] | flags | Les indicateurs de pipeline. |
|
protectedpure virtual |
Crée l'attache de profondeur et stencil.
[in] | flags | Les indicateurs de pipeline. |
|
protected |
Crée un noeud de rendu.
[in] | pass | La passe. |
[in] | pipeline | Le pipeline. |
|
protected |
Crée un noeud de rendu de scène.
[in] | scene | La scène. |
[in] | pipeline | Le pipeline. |
|
protectedpure virtual |
Crée les attaches de layout de descripteurs communs pour les textures.
[in] | flags | Les indicateurs de pipeline. |
Implémenté dans castor3d::RenderTechniquePass, et castor3d::ShadowMapPass.
|
protectedvirtual |
Crée les attaches de layout de descripteurs communs pour les UBO.
[in] | flags | Les indicateurs de pipeline. |
Réimplémentée dans castor3d::RenderTechniquePass.
|
protectedpure virtual |
Initialise l'ensemble de descripteurs pour un noeud de billboard.
[in] | layout | Le layout des descripteurs. |
[in,out] | index | L'indice de la texture, mis à jour au prochain disponible. |
[in] | node | Le noeud. |
[in] | shadowMaps | Les shadow maps. |
|
protectedpure virtual |
Initialise l'ensemble de descripteurs pour un noeud de morphing.
[in] | layout | Le layout des descripteurs. |
[in,out] | index | L'indice de la texture, mis à jour au prochain disponible. |
[in] | node | Le noeud. |
[in] | shadowMaps | Les shadow maps. |
|
protectedpure virtual |
Initialise l'ensemble de descripteurs pour un noeud de billboard.
[in] | layout | Le layout des descripteurs. |
[in] | node | Le noeud. |
|
protectedpure virtual |
Initialise l'ensemble de descripteurs pour un noeud de morphing.
[in] | layout | Le layout des descripteurs. |
[in] | node | Le noeud. |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Récupère le programme shader correspondant aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
protectedpure virtual |
Initialise la passe.
[in] | device | Le device GPU. |
size | Les dimensions voulues pour la passe. |
true
si tout s'est bien passé.
|
protectedvirtual |
Prépare le pipeline de rendu, en supprimant les faces arrière.
[in] | program | Le programme. |
[in] | layouts | Les layouts des tampons de sommets. |
[in] | flags | Les indicateurs de pipeline. |
|
protectedvirtual |
Prépare le pipeline de rendu, en supprimant les faces avant.
[in] | program | Le programme. |
[in] | layouts | Les layouts des tampons de sommets. |
[in] | flags | Les indicateurs de pipeline. |
|
protected |
Met à jour des sous maillages instanciés.
[in] | nodes | Les noeuds de rendu. |
|
protected |
Met à jour des sous maillages instanciés.
[in] | nodes | Les noeuds de rendu. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Met à jour des sous maillages non instanciés.
[in] | nodes | Les noeuds de rendu. |
|
protected |
Met à jour des sous maillages non instanciés.
[in] | nodes | Les noeuds de rendu. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Met à jour des sous maillages non instanciés.
[in] | nodes | Les noeuds de rendu. |
|
protected |
Met à jour des sous maillages non instanciés.
[in] | nodes | Les noeuds de rendu. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Met à jour des sous maillages instanciés.
[in] | nodes | Les noeuds de rendu. |
|
protected |
Met à jour des sous maillages instanciés.
[in] | nodes | Les noeuds de rendu. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Met à jour des sous maillages non instanciés.
[in] | nodes | Les noeuds de rendu. |
|
protected |
Met à jour des sous maillages non instanciés.
[in] | nodes | Les noeuds de rendu. |
[in,out] | info | Reçoit les informations de rendu. |
|
protected |
Met à jour des billboards.
[in] | nodes | Les noeuds de rendu. |
|
protected |
Met à jour des billboards.
[in] | nodes | Les noeuds de rendu. |
[in,out] | info | Reçoit les informations de rendu. |
|
protectedvirtual |
Met les données spécifiques.
[out] | queues | Reçoit les files de rendu nécessaires pour le dessin de la frame. |
|
protectedvirtual |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
|
inline |
Références m_forceTwoSided.
|
inline |
Références castor3d::RenderQueue::getCommandBuffer(), et m_renderQueue.
|
inline |
Références m_culler.
|
inline |
Références m_culler.
C3D_API ShaderPtr castor3d::SceneRenderPass::getGeometryShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du geometry shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
inline |
Références m_instanceMult.
|
inline |
Références m_matrixUbo.
C3D_API RenderPipeline* castor3d::SceneRenderPass::getPipelineBack | ( | PipelineFlags | flags | ) | const |
Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces arrière supprimées.
[in] | flags | Les indicateurs du pipeline. |
nullptr
si aucun pipeline n'est disponible pour la configuration voulue. C3D_API RenderPipeline* castor3d::SceneRenderPass::getPipelineFront | ( | PipelineFlags | flags | ) | const |
Récupère le pipeline qui correspond aux indicateurs donnés, pour les faces avant supprimées.
[in] | flags | Les indicateurs du pipeline. |
nullptr
si aucun pipeline n'est disponible pour la configuration voulue.
|
inline |
C3D_API ShaderPtr castor3d::SceneRenderPass::getPixelShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du pixel shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
inline |
Références m_renderPass.
|
inline |
Références m_sceneUbo.
|
inline |
Références m_sceneUbo.
|
virtual |
name Accesseurs.
Réimplémentée dans castor3d::PickingPass, castor3d::ShadowMapPass, castor3d::TransparentPass, castor3d::OpaquePass, et castor3d::DepthPass.
|
inline |
Références m_timer.
|
inline |
Références m_timer.
C3D_API ShaderPtr castor3d::SceneRenderPass::getVertexShaderSource | ( | PipelineFlags const & | flags | ) | const |
Récupère le source du vertex shader qui correspond aux indicateurs donnés.
[in] | flags | Les indicateurs de pipeline. |
|
inline |
Références castor3d::RenderQueue::hasNodes(), et m_renderQueue.
C3D_API bool castor3d::SceneRenderPass::initialise | ( | RenderDevice const & | device, |
castor::Size const & | size | ||
) |
Initialise la passe.
device | Le device actuel. |
size | Les dimensions voulues pour la passe. |
true
si tout s'est bien passé. C3D_API bool castor3d::SceneRenderPass::initialise | ( | RenderDevice const & | device, |
castor::Size const & | size, | ||
RenderPassTimer & | timer, | ||
uint32_t | index | ||
) |
Initialise la passe.
device | Le device actuel. |
size | Les dimensions voulues pour la passe. |
timer | Le timer parent. |
index | L'indice de la passe, dans le parent. |
true
si tout s'est bien passé. C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
BillboardRenderNode & | node, | ||
ShadowMapLightTypeArray const & | shadowMaps | ||
) |
Initialise l'ensemble de descripteurs de textures pour un noeud de billboard.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
[in] | shadowMaps | Les shadow maps. |
C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
MorphingRenderNode & | node, | ||
ShadowMapLightTypeArray const & | shadowMaps | ||
) |
Initialise l'ensemble de descripteurs de textures pour un noeud de morphing.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
[in] | shadowMaps | Les shadow maps. |
C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
SkinningRenderNode & | node, | ||
ShadowMapLightTypeArray const & | shadowMaps | ||
) |
Initialise l'ensemble de descripteurs de textures pour un noeud de skinning.
[in] | descriptorPool | Le pool. |
[in] | node | Les noeud. |
[in] | shadowMaps | Les shadow maps. |
C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
StaticRenderNode & | node, | ||
ShadowMapLightTypeArray const & | shadowMaps | ||
) |
Initialise l'ensemble de descripteurs de textures pour un noeud statique.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
[in] | shadowMaps | Les shadow maps. |
C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
SubmeshSkinninRenderNodesByPassMap & | nodes, | ||
ShadowMapLightTypeArray const & | shadowMaps | ||
) |
Initialise l'ensemble de descripteurs de textures pour des noeuds de skinning.
[in] | descriptorPool | Le pool. |
[in] | nodes | Les noeuds. |
[in] | shadowMaps | Les shadow maps. |
C3D_API void castor3d::SceneRenderPass::initialiseTextureDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
SubmeshStaticRenderNodesByPassMap & | nodes, | ||
ShadowMapLightTypeArray const & | shadowMaps | ||
) |
Initialise l'ensemble de descripteurs de textures pour des noeuds statiques.
[in] | descriptorPool | Le pool. |
[in] | nodes | Les noeuds. |
[in] | shadowMaps | Les shadow maps. |
C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
BillboardRenderNode & | node | ||
) |
Initialise l'ensemble de descripteurs d'UBO pour un noeud de billboard.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
MorphingRenderNode & | node | ||
) |
Initialise l'ensemble de descripteurs d'UBO pour un noeud de morphing.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
SkinningRenderNode & | node | ||
) |
Initialise l'ensemble de descripteurs d'UBO pour un noeud de skinning.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
StaticRenderNode & | node | ||
) |
Initialise l'ensemble de descripteurs d'UBO pour un noeud statique.
[in] | descriptorPool | Le pool. |
[in] | node | Le noeud. |
C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
SubmeshSkinninRenderNodesByPassMap & | nodes | ||
) |
Initialise l'ensemble de descripteurs d'UBO pour des noeuds de skining.
[in] | descriptorPool | Le pool. |
[in] | nodes | Les noeuds. |
C3D_API void castor3d::SceneRenderPass::initialiseUboDescriptor | ( | ashes::DescriptorSetPool const & | descriptorPool, |
SubmeshStaticRenderNodesByPassMap & | nodes | ||
) |
Initialise l'ensemble de descripteurs d'UBO pour des noeuds statiques.
[in] | descriptorPool | Le pool. |
[in] | nodes | Les noeuds. |
|
inline |
Références m_isDirty.
|
inline |
Références m_oit.
C3D_API PipelineFlags castor3d::SceneRenderPass::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.
[in] | colourBlendMode | Le mode de mélange de couleurs. |
[in] | alphaBlendMode | Le mode de mélange alpha. |
[in] | alphaFunc | La fonction de test alpha. |
[in,out] | passFlags | Une combinaison de PassFlag. |
[in,out] | textures | La configuration des textures. |
[in,out] | heightMapIndex | L'indice de la texture contenant de hauteur. |
[in,out] | programFlags | Une combinaison de ProgramFlag. |
[in,out] | sceneFlags | Les indicateurs relatifs à la scène. |
[in] | topology | La topologie de rendu. |
[in] | layouts | Les layouts des tampons de sommets. |
C3D_API void castor3d::SceneRenderPass::prepareBackPipeline | ( | PipelineFlags & | flags, |
ashes::PipelineVertexInputStateCreateInfoCRefArray const & | layouts | ||
) |
Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling.
[in,out] | flags | Les indicateurs de pipeline. |
[in] | layouts | Les layouts des tampons de sommets. |
C3D_API PipelineFlags castor3d::SceneRenderPass::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.
[in] | colourBlendMode | Le mode de mélange de couleurs. |
[in] | alphaBlendMode | Le mode de mélange alpha. |
[in] | alphaFunc | La fonction de test alpha. |
[in,out] | passFlags | Une combinaison de PassFlag. |
[in,out] | textures | La configuration des textures. |
[in,out] | heightMapIndex | L'indice de la texture contenant de hauteur. |
[in,out] | programFlags | Une combinaison de ProgramFlag. |
[in,out] | sceneFlags | Les indicateurs relatifs à la scène. |
[in] | topology | La topologie de rendu. |
[in] | layouts | Les layouts des tampons de sommets. |
C3D_API void castor3d::SceneRenderPass::prepareFrontPipeline | ( | PipelineFlags & | flags, |
ashes::PipelineVertexInputStateCreateInfoCRefArray const & | layouts | ||
) |
Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling.
[in,out] | flags | Les indicateurs de pipeline. |
[in] | layouts | Les layouts des tampons de sommets. |
C3D_API void castor3d::SceneRenderPass::update | ( | CpuUpdater & | updater | ) |
Met à jour la passe de rendu, au niveau CPU.
[in,out] | updater | Les données d'update. |
C3D_API void castor3d::SceneRenderPass::updateFlags | ( | PipelineFlags & | flags | ) | const |
Modifie les indicateurs donnés pour le faire correspondre au pré-requis de la passe de rendus.
[in,out] | flags | Les indicateurs de pipeline. |
C3D_API void castor3d::SceneRenderPass::updatePipeline | ( | RenderPipeline & | pipeline | ) |
Met à jour lee pipeline opaque.
[in] | pipeline | Le pipeline de rendu. |
|
protected |
|
protected |
Référencé par getCuller().
|
protected |
Référencé par forceTwoSided().
|
protected |
|
protected |
Référencé par getInstanceMult().
|
protected |
Référencé par isDirty().
|
protected |
Référencé par getMatrixUbo().
|
protected |
|
protected |
|
protected |
Référencé par isOrderIndependent().
|
protected |
|
protected |
Référencé par getRenderPass().
|
protected |
Référencé par getCommandBuffer(), et hasNodes().
|
protected |
|
protected |
Référencé par getSceneUbo().
|
protected |
|
protected |
Référencé par castor3d::ShadowMapPass::getTimer(), et getTimer().