Castor3D  ..
Classes | Fonctions membres publiques | Types protégés | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence de la classe castor3d::LightPassabstract

Classe de base pour toutes les passes d'éclairage. Plus de détails...

+ Graphe d'héritage de castor3d::LightPass:
+ Graphe de collaboration de castor3d::LightPass:

Classes

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

Fonctions membres publiques

virtual ~LightPass ()=default
 Destructeur. Plus de détails...
 
virtual void initialise (Scene const &scene, SceneUbo &sceneUbo)=0
 Initialise la passe d'éclairage. Plus de détails...
 
virtual void cleanup ()=0
 Nettoie la passe d'éclairage. Plus de détails...
 
virtual void render (castor::Size const &size, GeometryPassResult const &gp, Light const &light, Camera const &camera, bool first, ShadowMap *shadowMapOpt)
 Dessine la passe d'éclairage sur le tampon d'image donné. Plus de détails...
 
virtual uint32_t getCount () const =0
 

Types protégés

using ProgramPtr = std::unique_ptr< Program >
 

Fonctions membres protégées

 LightPass (Engine &engine, FrameBuffer &frameBuffer, FrameBufferAttachment &depthAttach, GpInfoUbo &gpInfoUbo, bool hasShadows)
 Constructeur. Plus de détails...
 
void doInitialise (Scene const &scene, LightType type, VertexBuffer &vbo, SceneUbo &sceneUbo, ModelMatrixUbo *modelMatrixUbo)
 Initialise la passe d'éclairage. Plus de détails...
 
void doCleanup ()
 Nettoie la passe d'éclairage. Plus de détails...
 
virtual void doUpdate (castor::Size const &size, Light const &light, Camera const &camera)=0
 Met à jour la passe d'éclairage. Plus de détails...
 
void doRender (castor::Size const &size, GeometryPassResult const &gp, bool first)
 Dessine la passe d'éclairage sur le tampon d'image donné. Plus de détails...
 
virtual glsl::Shader doGetLegacyPixelShaderSource (SceneFlags const &sceneFlags, LightType type) const
 Récupère le source du pixel shader pour cette passe lumineuse. Plus de détails...
 
virtual glsl::Shader doGetPbrMRPixelShaderSource (SceneFlags const &sceneFlags, LightType type) const
 Récupère le source du pixel shader pour cette passe lumineuse. Plus de détails...
 
virtual glsl::Shader doGetPbrSGPixelShaderSource (SceneFlags const &sceneFlags, LightType type) const
 Récupère le source du pixel shader pour cette passe lumineuse. Plus de détails...
 
virtual glsl::Shader doGetVertexShaderSource (SceneFlags const &sceneFlags) const =0
 Récupère le source du vertex shader pour cette passe lumineuse. Plus de détails...
 
virtual ProgramPtr doCreateProgram (glsl::Shader const &vtx, glsl::Shader const &pxl) const =0
 Crée un programme de passe d'éclairage. Plus de détails...
 

Attributs protégés

Enginem_engine
 
bool m_shadows
 
MatrixUbo m_matrixUbo
 
FrameBufferm_frameBuffer
 
FrameBufferAttachmentm_depthAttach
 
ProgramPtr m_program
 
GpInfoUbom_gpInfoUbo
 
VertexBufferSPtr m_vertexBuffer
 
uint32_t m_offset { 0u }
 

Description détaillée

Classe de base pour toutes les passes d'éclairage.

Auteur
Sylvain DOREMUS
Version
0.10.0
Date
08/06/2017
Remarques
Le résultat de chaque passe d'éclairage est mélangé avec celui de la précédente.

Documentation des définitions de type membres

◆ ProgramPtr

using castor3d::LightPass::ProgramPtr = std::unique_ptr< Program >
protected

Documentation des constructeurs et destructeur

◆ ~LightPass()

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

Destructeur.

◆ LightPass()

castor3d::LightPass::LightPass ( Engine engine,
FrameBuffer frameBuffer,
FrameBufferAttachment depthAttach,
GpInfoUbo gpInfoUbo,
bool  hasShadows 
)
protected

Constructeur.

Paramètres
[in]engineLe moteur.
[in]frameBufferLe tampon d'image cible.
[in]depthAttachL'attache du tampon de profondeur.
[in]gpInfoUboL'UBO de la geometry pass.
[in]hasShadowsDit si les ombres sont activées pour cette passe d'éclairage.

Documentation des fonctions membres

◆ cleanup()

virtual void castor3d::LightPass::cleanup ( )
pure virtual

Nettoie la passe d'éclairage.

Implémenté dans castor3d::MeshLightPass, et castor3d::DirectionalLightPass.

◆ doCleanup()

void castor3d::LightPass::doCleanup ( )
protected

Nettoie la passe d'éclairage.

◆ doCreateProgram()

virtual ProgramPtr castor3d::LightPass::doCreateProgram ( glsl::Shader const &  vtx,
glsl::Shader const &  pxl 
) const
protectedpure virtual

Crée un programme de passe d'éclairage.

Paramètres
[in]vtxLe source du vertex shader.
[in]pxlLe source du fagment shader.
Renvoie
Le programme créé.

◆ doGetLegacyPixelShaderSource()

virtual glsl::Shader castor3d::LightPass::doGetLegacyPixelShaderSource ( SceneFlags const &  sceneFlags,
LightType  type 
) const
protectedvirtual

Récupère le source du pixel shader pour cette passe lumineuse.

Paramètres
[in]sceneFlagsLes indicateurs de scène.
[in]typeLe type de source lumineuse.
Renvoie
Le source.

◆ doGetPbrMRPixelShaderSource()

virtual glsl::Shader castor3d::LightPass::doGetPbrMRPixelShaderSource ( SceneFlags const &  sceneFlags,
LightType  type 
) const
protectedvirtual

Récupère le source du pixel shader pour cette passe lumineuse.

Paramètres
[in]sceneFlagsLes indicateurs de scène.
[in]typeLe type de source lumineuse.
Renvoie
Le source.

◆ doGetPbrSGPixelShaderSource()

virtual glsl::Shader castor3d::LightPass::doGetPbrSGPixelShaderSource ( SceneFlags const &  sceneFlags,
LightType  type 
) const
protectedvirtual

Récupère le source du pixel shader pour cette passe lumineuse.

Paramètres
[in]sceneFlagsLes indicateurs de scène.
[in]typeLe type de source lumineuse.
Renvoie
Le source.

◆ doGetVertexShaderSource()

virtual glsl::Shader castor3d::LightPass::doGetVertexShaderSource ( SceneFlags const &  sceneFlags) const
protectedpure virtual

Récupère le source du vertex shader pour cette passe lumineuse.

Paramètres
[in]sceneFlagsLes indicateurs de scène.
Renvoie
Le source.

◆ doInitialise()

void castor3d::LightPass::doInitialise ( Scene const &  scene,
LightType  type,
VertexBuffer vbo,
SceneUbo sceneUbo,
ModelMatrixUbo modelMatrixUbo 
)
protected

Initialise la passe d'éclairage.

Paramètres
[in]sceneLa scène.
[in]typeLe type de source lumineuse.
[in]vboLe VBO.
[in]sceneUboL'UBO de scène.
[in]modelMatrixUboL'UBO optionnel de matrices modèle.

◆ doRender()

void castor3d::LightPass::doRender ( castor::Size const &  size,
GeometryPassResult const &  gp,
bool  first 
)
protected

Dessine la passe d'éclairage sur le tampon d'image donné.

Paramètres
[in]sizeLes dimensions de la zone de rendu.
[in]gpLe résultat de la geometry pass.
[in]firstDit si cette passe d'éclairage est la première (true) ou pas (false).

◆ doUpdate()

virtual void castor3d::LightPass::doUpdate ( castor::Size const &  size,
Light const &  light,
Camera const &  camera 
)
protectedpure virtual

Met à jour la passe d'éclairage.

Paramètres
[in]sizeLes dimensions de la zone de rendu.
[in]lightLa source lumineuse.
[in]cameraLa caméra.

Implémenté dans castor3d::MeshLightPass, et castor3d::DirectionalLightPass.

◆ getCount()

virtual uint32_t castor3d::LightPass::getCount ( ) const
pure virtual
Renvoie
Le nombre de primitives à dessiner.

Implémenté dans castor3d::MeshLightPass, et castor3d::DirectionalLightPass.

◆ initialise()

virtual void castor3d::LightPass::initialise ( Scene const &  scene,
SceneUbo sceneUbo 
)
pure virtual

Initialise la passe d'éclairage.

Paramètres
[in]sceneLa scène.
[in]sceneUboL'UBO de scène.

Implémenté dans castor3d::MeshLightPass, et castor3d::DirectionalLightPass.

◆ render()

virtual void castor3d::LightPass::render ( castor::Size const &  size,
GeometryPassResult const &  gp,
Light const &  light,
Camera const &  camera,
bool  first,
ShadowMap shadowMapOpt 
)
virtual

Dessine la passe d'éclairage sur le tampon d'image donné.

Paramètres
[in]sizeLes dimensions de la zone de rendu.
[in]gpLe résultat de la geometry pass.
[in]lightLa source lumineuse.
[in]cameraLa caméra.
[in]firstDit si cette passe d'éclairage est la première (true) ou pas (false).
[in]shadowMapOptLes textures d'ombres optionnelles.

Documentation des données membres

◆ m_depthAttach

FrameBufferAttachment& castor3d::LightPass::m_depthAttach
protected

L'attache de RBO cible.

◆ m_engine

Engine& castor3d::LightPass::m_engine
protected

Le moteur.

◆ m_frameBuffer

FrameBuffer& castor3d::LightPass::m_frameBuffer
protected

Le FBO cible.

◆ m_gpInfoUbo

GpInfoUbo& castor3d::LightPass::m_gpInfoUbo
protected

Les informations de la passe de géométrie.

◆ m_matrixUbo

MatrixUbo castor3d::LightPass::m_matrixUbo
protected

Le tampon d'uniformes contenant les données de matrices.

◆ m_offset

uint32_t castor3d::LightPass::m_offset { 0u }
protected

Le décalage du tampon d'indices.

◆ m_program

ProgramPtr castor3d::LightPass::m_program
protected

Le programme de la passe de lumière.

◆ m_shadows

bool castor3d::LightPass::m_shadows
protected

Dit si les ombres sont activées.

◆ m_vertexBuffer

VertexBufferSPtr castor3d::LightPass::m_vertexBuffer
protected

Le tampon de sommets.


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