![]() |
Castor3D
0.11.0
Multiplatform 3D engine
|
Fonctions membres publiques | |
C3D_API | OpaquePass (MatrixUbo &matrixUbo, SceneCuller &culler, SsaoConfig const &config) |
Constructeur. Plus de détails... | |
C3D_API | ~OpaquePass () |
Destructeur. Plus de détails... | |
C3D_API void | initialiseRenderPass (RenderDevice const &device, OpaquePassResult const &gpResult) |
Initialise la passe de rendu. Plus de détails... | |
C3D_API void | accept (RenderTechniqueVisitor &visitor) override |
Fonction d'acceptation de visiteur. Plus de détails... | |
C3D_API ashes::Semaphore const & | render (RenderDevice const &device, ashes::Semaphore const &toWait) |
Dessine les noeuds transparents. Plus de détails... | |
C3D_API TextureFlags | getTexturesMask () const override |
![]() | |
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... | |
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... | |
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 |
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 | 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... | |
![]() | |
Scene const & | m_scene |
LpvGridConfigUbo const * | m_lpvConfigUbo |
LayeredLpvGridConfigUbo const * | m_llpvConfigUbo |
VoxelizerUbo const * | m_vctConfigUbo |
LightVolumePassResult const * | m_lpvResult |
TextureUnit const * | m_vctFirstBounce |
TextureUnit const * | m_vctSecondaryBounce |
Camera * | m_camera { nullptr } |
SceneRenderNode | m_sceneNode |
bool | m_environment { false } |
SsaoConfig | m_ssaoConfig |
ashes::SemaphorePtr | m_finished |
![]() | |
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 |
C3D_API castor3d::OpaquePass::OpaquePass | ( | MatrixUbo & | matrixUbo, |
SceneCuller & | culler, | ||
SsaoConfig const & | config | ||
) |
Constructeur.
[in] | matrixUbo | L'UBO de matrices de la scène. |
[in] | culler | Le culler pour cette passe. |
[in] | config | La configuration du SSAO. |
C3D_API castor3d::OpaquePass::~OpaquePass | ( | ) |
Destructeur.
|
overridevirtual |
Fonction d'acceptation de visiteur.
visitor | Le ... visiteur. |
Réimplémentée à partir de castor3d::RenderTechniquePass.
|
overridevirtual |
name Accesseurs.
Réimplémentée à partir de castor3d::SceneRenderPass.
C3D_API void castor3d::OpaquePass::initialiseRenderPass | ( | RenderDevice const & | device, |
OpaquePassResult const & | gpResult | ||
) |
Initialise la passe de rendu.
[in] | device | Le device GPU. |
[in] | gpResult | Les tampons de la geometry pass. |
C3D_API ashes::Semaphore const& castor3d::OpaquePass::render | ( | RenderDevice const & | device, |
ashes::Semaphore const & | toWait | ||
) |
Dessine les noeuds transparents.
[in] | device | Le device GPU. |
[in] | toWait | Le sémaphore de la passe de rendu précédente. |