Castor3D
0.11.0
Multiplatform 3D engine
|
Classe de base pour tous les programmes des passes d'éclairage. Plus de détails...
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 | |
Engine & | m_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... | |
Classe de base pour tous les programmes des passes d'éclairage.
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.
[in] | engine | Le moteur. |
[in] | device | Le device GPU. |
[in] | name | Le nom de la passe. |
[in] | vtx | Le source du vertex shader. |
[in] | pxl | Le source du fagment shader. |
[in] | hasShadows | Dit si ce programme utilise une shadow map. |
[in] | hasVoxels | Dit si ce programme utilise le résultat de la voxellisation. |
[in] | generatesIndirect | Dit si ce programme genère de l'éclairage indirect. |
|
virtualdefault |
Destructeur.
Réimplémentée dans castor3d::MeshLightPass::Program, castor3d::DirectionalLightPass::Program, castor3d::PointLightPass::Program, et castor3d::SpotLightPass::Program.
void castor3d::LightPass::Program::bind | ( | Light const & | light | ) |
Active une source lumineuse.
[in] | light | La lumière. |
void castor3d::LightPass::Program::cleanup | ( | ) |
Nettoie le programme et son pipeline.
|
protectedvirtual |
Dessine la passe d'éclairage.
[in] | commandBuffer | Le tampon de commandes. |
[in] | count | Le nombre de primitives à dessiner. |
[in] | first | Dit si cette passe d'éclairage est la première (true ) ou pas (false ). |
[in] | offset | L'offset dans le VBO. |
|
inline |
Références m_pipelineLayout.
|
inline |
Références m_textureDescriptorLayout.
|
inline |
Références m_textureDescriptorPool.
|
inline |
name Accesseurs.
Références m_uboDescriptorLayout.
|
inline |
Références m_uboDescriptorPool.
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.
[in] | vbo | Le tampon de sommets contenant l'objet à dessiner. |
[in] | vertexLayout | Le layout du tampon de sommets. |
[in] | firstRenderPass | La passe de rendu pour la première source lumineuse. |
[in] | blendRenderPass | La passe de rendu pour les autres sources lumineuses. |
[in] | matrixUbo | L'UBO des matrices. |
[in] | sceneUbo | L'UBO de la scène. |
[in] | gpInfoUbo | L'UBO de la geometry pass. |
[in] | modelMatrixUbo | L'UBO optionnel de matrices modèle. |
[in] | voxelUbo | L'UBO optionnel du voxelizer. |
void castor3d::LightPass::Program::render | ( | ashes::CommandBuffer & | commandBuffer, |
uint32_t | count, | ||
bool | first, | ||
uint32_t | offset | ||
) | const |
Dessine la passe d'éclairage.
[in] | commandBuffer | Le tampon de commandes. |
[in] | count | Le nombre de primitives à dessiner. |
[in] | first | Dit si cette passe d'éclairage est la première (true ) ou pas (false ). |
[in] | offset | L'offset dans le VBO. |
ashes::GraphicsPipelinePtr castor3d::LightPass::Program::m_blendPipeline |
RenderDevice const& castor3d::LightPass::Program::m_device |
Engine& castor3d::LightPass::Program::m_engine |
ashes::GraphicsPipelinePtr castor3d::LightPass::Program::m_firstPipeline |
bool castor3d::LightPass::Program::m_generatesIndirect |
ashes::PipelineLayoutPtr castor3d::LightPass::Program::m_pipelineLayout |
Référencé par getPipelineLayout().
ashes::PipelineShaderStageCreateInfoArray castor3d::LightPass::Program::m_program |
bool castor3d::LightPass::Program::m_shadows |
ashes::DescriptorSetLayoutPtr castor3d::LightPass::Program::m_textureDescriptorLayout |
Référencé par getTextureDescriptorLayout().
ashes::DescriptorSetPoolPtr castor3d::LightPass::Program::m_textureDescriptorPool |
Référencé par getTextureDescriptorPool().
ashes::DescriptorSetLayoutPtr castor3d::LightPass::Program::m_uboDescriptorLayout |
Référencé par getUboDescriptorLayout().
ashes::DescriptorSetPoolPtr castor3d::LightPass::Program::m_uboDescriptorPool |
Référencé par getUboDescriptorPool().
bool castor3d::LightPass::Program::m_voxels |