Castor3D
..
|
Classe de base pour tous les programmes des passes d'éclairage. Plus de détails...
Fonctions membres publiques | |
Program (Engine &engine, glsl::Shader const &vtx, glsl::Shader const &pxl) | |
Constructeur. Plus de détails... | |
virtual | ~Program () noexcept |
Destructeur. Plus de détails... | |
void | initialise (VertexBuffer &vbo, MatrixUbo &matrixUbo, SceneUbo &sceneUbo, UniformBuffer &gpInfoUbo, ModelMatrixUbo *modelMatrixUbo) |
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 (castor::Size const &size, uint32_t count, bool first, uint32_t offset) const |
Dessine la passe d'éclairage. Plus de détails... | |
Attributs publics | |
ShaderProgramSPtr | m_program |
GeometryBuffersSPtr | m_geometryBuffers |
RenderPipelineSPtr | m_blendPipeline |
RenderPipelineSPtr | m_firstPipeline |
PushUniform3fSPtr | m_lightColour |
PushUniform2fSPtr | m_lightIntensity |
PushUniform1fSPtr | m_lightFarPlane |
Classe de base pour tous les programmes des passes d'éclairage.
castor3d::LightPass::Program::Program | ( | Engine & | engine, |
glsl::Shader const & | vtx, | ||
glsl::Shader const & | pxl | ||
) |
Constructeur.
[in] | engine | Le moteur. |
[in] | vtx | Le source du vertex shader. |
[in] | pxl | Le source du fagment shader. |
|
virtualnoexcept |
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.
void castor3d::LightPass::Program::initialise | ( | VertexBuffer & | vbo, |
MatrixUbo & | matrixUbo, | ||
SceneUbo & | sceneUbo, | ||
UniformBuffer & | gpInfoUbo, | ||
ModelMatrixUbo * | modelMatrixUbo | ||
) |
Initialise le programme et son pipeline.
[in] | vbo | Le tampon de sommets contenant l'objet à dessiner. |
[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. |
void castor3d::LightPass::Program::render | ( | castor::Size const & | size, |
uint32_t | count, | ||
bool | first, | ||
uint32_t | offset | ||
) | const |
Dessine la passe d'éclairage.
[in] | size | Les dimensions de la zone de rendu. |
[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. |
RenderPipelineSPtr castor3d::LightPass::Program::m_blendPipeline |
Le pipeline utilisé par la passe lumières.
RenderPipelineSPtr castor3d::LightPass::Program::m_firstPipeline |
Le pipeline utilisé par la passe lumières.
GeometryBuffersSPtr castor3d::LightPass::Program::m_geometryBuffers |
Conteneur de buffers de géométries.
PushUniform3fSPtr castor3d::LightPass::Program::m_lightColour |
La variable contenant la couleur de la lumière.
PushUniform1fSPtr castor3d::LightPass::Program::m_lightFarPlane |
La variable contenant la position du plan lointain de la lumière.
PushUniform2fSPtr castor3d::LightPass::Program::m_lightIntensity |
La variable contenant les intensités de la lumière.
ShaderProgramSPtr castor3d::LightPass::Program::m_program |
Le shader utilisé pour rendre les lumières.