Castor3D  0.11.0
Multiplatform 3D engine
Fonctions membres publiques | Attributs publics | Fonctions membres protégées | Liste de tous les membres
Référence de la structure castor3d::LightPass::Programabstract

Classe de base pour tous les programmes des passes d'éclairage. Plus de détails...

Graphe d'héritage de castor3d::LightPass::Program:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::LightPass::Program:
Collaboration graph
[légende]

Fonctions membres publiques

 Program (Engine &engine, RenderDevice const &device, castor::String const &name, ShaderModule const &vtx, ShaderModule const &pxl, bool hasShadows, bool hasVoxels, bool generatesIndirect)
 Constructeur. Plus de détails...
 
virtual ~Program ()=default
 Destructeur. Plus de détails...
 
void initialise (ashes::VertexBufferBase &vbo, ashes::PipelineVertexInputStateCreateInfo const &vertexLayout, ashes::RenderPass const &firstRenderPass, ashes::RenderPass const &blendRenderPass, MatrixUbo &matrixUbo, SceneUbo &sceneUbo, GpInfoUbo const &gpInfoUbo, UniformBufferT< ModelMatrixUboConfiguration > const *modelMatrixUbo, VoxelizerUbo const *voxelUbo)
 Initialise le programme et son pipeline. Plus de détails...
 
void cleanup ()
 Nettoie le programme et son pipeline. Plus de détails...
 
void bind (Light const &light)
 Active une source lumineuse. Plus de détails...
 
void render (ashes::CommandBuffer &commandBuffer, uint32_t count, bool first, uint32_t offset) const
 Dessine la passe d'éclairage. Plus de détails...
 
ashes::DescriptorSetLayout const & getUboDescriptorLayout () const
 
ashes::DescriptorSetLayout const & getTextureDescriptorLayout () const
 
ashes::DescriptorSetPool const & getUboDescriptorPool () const
 
ashes::DescriptorSetPool const & getTextureDescriptorPool () const
 
ashes::PipelineLayout const & getPipelineLayout () const
 

Attributs publics

Enginem_engine
 
RenderDevice const & m_device
 
ashes::PipelineShaderStageCreateInfoArray m_program
 
ashes::DescriptorSetLayoutPtr m_uboDescriptorLayout
 
ashes::DescriptorSetPoolPtr m_uboDescriptorPool
 
ashes::DescriptorSetLayoutPtr m_textureDescriptorLayout
 
ashes::DescriptorSetPoolPtr m_textureDescriptorPool
 
ashes::PipelineLayoutPtr m_pipelineLayout
 
ashes::GraphicsPipelinePtr m_blendPipeline
 
ashes::GraphicsPipelinePtr m_firstPipeline
 
bool m_shadows
 
bool m_voxels
 
bool m_generatesIndirect
 

Fonctions membres protégées

virtual void doRender (ashes::CommandBuffer &commandBuffer, uint32_t count, bool first, uint32_t offset) const
 Dessine la passe d'éclairage. Plus de détails...
 

Description détaillée

Classe de base pour tous les programmes des passes d'éclairage.

Documentation des constructeurs et destructeur

◆ Program()

castor3d::LightPass::Program::Program ( Engine engine,
RenderDevice const &  device,
castor::String const &  name,
ShaderModule const &  vtx,
ShaderModule const &  pxl,
bool  hasShadows,
bool  hasVoxels,
bool  generatesIndirect 
)

Constructeur.

Paramètres
[in]engineLe moteur.
[in]deviceLe device GPU.
[in]nameLe nom de la passe.
[in]vtxLe source du vertex shader.
[in]pxlLe source du fagment shader.
[in]hasShadowsDit si ce programme utilise une shadow map.
[in]hasVoxelsDit si ce programme utilise le résultat de la voxellisation.
[in]generatesIndirectDit si ce programme genère de l'éclairage indirect.

◆ ~Program()

virtual castor3d::LightPass::Program::~Program ( )
virtualdefault

Documentation des fonctions membres

◆ bind()

void castor3d::LightPass::Program::bind ( Light const &  light)

Active une source lumineuse.

Paramètres
[in]lightLa lumière.

◆ cleanup()

void castor3d::LightPass::Program::cleanup ( )

Nettoie le programme et son pipeline.

◆ doRender()

virtual void castor3d::LightPass::Program::doRender ( ashes::CommandBuffer &  commandBuffer,
uint32_t  count,
bool  first,
uint32_t  offset 
) const
protectedvirtual

Dessine la passe d'éclairage.

Paramètres
[in]commandBufferLe tampon de commandes.
[in]countLe nombre de primitives à dessiner.
[in]firstDit si cette passe d'éclairage est la première (true) ou pas (false).
[in]offsetL'offset dans le VBO.

◆ getPipelineLayout()

ashes::PipelineLayout const& castor3d::LightPass::Program::getPipelineLayout ( ) const
inline

Références m_pipelineLayout.

◆ getTextureDescriptorLayout()

ashes::DescriptorSetLayout const& castor3d::LightPass::Program::getTextureDescriptorLayout ( ) const
inline

◆ getTextureDescriptorPool()

ashes::DescriptorSetPool const& castor3d::LightPass::Program::getTextureDescriptorPool ( ) const
inline

Références m_textureDescriptorPool.

◆ getUboDescriptorLayout()

ashes::DescriptorSetLayout const& castor3d::LightPass::Program::getUboDescriptorLayout ( ) const
inline

name Accesseurs.

Références m_uboDescriptorLayout.

◆ getUboDescriptorPool()

ashes::DescriptorSetPool const& castor3d::LightPass::Program::getUboDescriptorPool ( ) const
inline

Références m_uboDescriptorPool.

◆ initialise()

void castor3d::LightPass::Program::initialise ( ashes::VertexBufferBase &  vbo,
ashes::PipelineVertexInputStateCreateInfo const &  vertexLayout,
ashes::RenderPass const &  firstRenderPass,
ashes::RenderPass const &  blendRenderPass,
MatrixUbo matrixUbo,
SceneUbo sceneUbo,
GpInfoUbo const &  gpInfoUbo,
UniformBufferT< ModelMatrixUboConfiguration > const *  modelMatrixUbo,
VoxelizerUbo const *  voxelUbo 
)

Initialise le programme et son pipeline.

Paramètres
[in]vboLe tampon de sommets contenant l'objet à dessiner.
[in]vertexLayoutLe layout du tampon de sommets.
[in]firstRenderPassLa passe de rendu pour la première source lumineuse.
[in]blendRenderPassLa passe de rendu pour les autres sources lumineuses.
[in]matrixUboL'UBO des matrices.
[in]sceneUboL'UBO de la scène.
[in]gpInfoUboL'UBO de la geometry pass.
[in]modelMatrixUboL'UBO optionnel de matrices modèle.
[in]voxelUboL'UBO optionnel du voxelizer.

◆ render()

void castor3d::LightPass::Program::render ( ashes::CommandBuffer &  commandBuffer,
uint32_t  count,
bool  first,
uint32_t  offset 
) const

Dessine la passe d'éclairage.

Paramètres
[in]commandBufferLe tampon de commandes.
[in]countLe nombre de primitives à dessiner.
[in]firstDit si cette passe d'éclairage est la première (true) ou pas (false).
[in]offsetL'offset dans le VBO.

Documentation des données membres

◆ m_blendPipeline

ashes::GraphicsPipelinePtr castor3d::LightPass::Program::m_blendPipeline

◆ m_device

RenderDevice const& castor3d::LightPass::Program::m_device

◆ m_engine

Engine& castor3d::LightPass::Program::m_engine

◆ m_firstPipeline

ashes::GraphicsPipelinePtr castor3d::LightPass::Program::m_firstPipeline

◆ m_generatesIndirect

bool castor3d::LightPass::Program::m_generatesIndirect

◆ m_pipelineLayout

ashes::PipelineLayoutPtr castor3d::LightPass::Program::m_pipelineLayout

Référencé par getPipelineLayout().

◆ m_program

ashes::PipelineShaderStageCreateInfoArray castor3d::LightPass::Program::m_program

◆ m_shadows

bool castor3d::LightPass::Program::m_shadows

◆ m_textureDescriptorLayout

ashes::DescriptorSetLayoutPtr castor3d::LightPass::Program::m_textureDescriptorLayout

Référencé par getTextureDescriptorLayout().

◆ m_textureDescriptorPool

ashes::DescriptorSetPoolPtr castor3d::LightPass::Program::m_textureDescriptorPool

Référencé par getTextureDescriptorPool().

◆ m_uboDescriptorLayout

ashes::DescriptorSetLayoutPtr castor3d::LightPass::Program::m_uboDescriptorLayout

Référencé par getUboDescriptorLayout().

◆ m_uboDescriptorPool

ashes::DescriptorSetPoolPtr castor3d::LightPass::Program::m_uboDescriptorPool

Référencé par getUboDescriptorPool().

◆ m_voxels

bool castor3d::LightPass::Program::m_voxels

La documentation de cette structure a été générée à partir du fichier suivant :