Castor3D  0.11.0
Multiplatform 3D engine
Classes | Fonctions membres publiques | Fonctions membres protégées | Liste de tous les membres
Référence de la classe castor3d::MeshLightPassabstract
Graphe d'héritage de castor3d::MeshLightPass:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::MeshLightPass:
Collaboration graph
[légende]

Classes

struct  Program
 Classe de base pour les programmes de passe d'éclairage nécessitant un maillage plutôt qu'un quad. Plus de détails...
 

Fonctions membres publiques

 MeshLightPass (RenderDevice const &device, castor::String const &suffix, LightPassConfig const &lpConfig, VoxelizerUbo const *vctConfig, LightType type)
 Constructeur. Plus de détails...
 
 ~MeshLightPass ()
 Destructeur. Plus de détails...
 
void initialise (Scene const &scene, OpaquePassResult const &gp, SceneUbo &sceneUbo, RenderPassTimer &timer) override
 Initialise la passe d'éclairage. Plus de détails...
 
void cleanup () override
 Nettoie la passe d'éclairage. Plus de détails...
 
ashes::Semaphore const & render (uint32_t index, ashes::Semaphore const &toWait) override
 Dessine la passe de rendu. Plus de détails...
 
uint32_t getCount () const override
 
- Fonctions membres publiques hérités de castor3d::LightPass
virtual ~LightPass ()=default
 Destructeur. Plus de détails...
 
void update (bool first, castor::Size const &size, Light const &light, Camera const &camera, ShadowMap const *shadowMap, TextureUnit const *vctFirstBounce, TextureUnit const *vctSecondaryBounce)
 Met à jour la passe d'éclairage. Plus de détails...
 
virtual void accept (PipelineVisitorBase &visitor)=0
 Fonction d'acceptation de visiteur. Plus de détails...
 
Pipeline createPipeline (LightType lightType, ShadowType shadowType, bool rsm, ShadowMap const *shadowMap, TextureUnit const *vctFirstBounce, TextureUnit const *vctSecondaryBounce)
 
ashes::Semaphore const & getSemaphore () const
 
castor::String const & getName () const
 

Fonctions membres protégées

void doUpdate (bool first, castor::Size const &size, Light const &light, Camera const &camera) override
 Met à jour la passe d'éclairage. Plus de détails...
 
ShaderPtr doGetVertexShaderSource (SceneFlags const &sceneFlags) const override
 Récupère le source du vertex shader pour cette passe lumineuse. Plus de détails...
 
virtual castor::Point3fArray doGenerateVertices () const =0
 
virtual castor::Matrix4x4f doComputeModelMatrix (Light const &light, Camera const &camera) const =0
 Calcule La matrice utilisée pour dessiner le modèle. Plus de détails...
 
- Fonctions membres protégées hérités de castor3d::LightPass
virtual PipelinedoGetPipeline (bool first, Light const &light, ShadowMap const *shadowMap, TextureUnit const *vctFirstBounce, TextureUnit const *vctSecondaryBounce)
 
 LightPass (RenderDevice const &device, castor::String const &suffix, ashes::RenderPassPtr firstRenderPass, ashes::RenderPassPtr blendRenderPass, LightPassConfig const &lpConfig, VoxelizerUbo const *vctConfig)
 Constructeur. Plus de détails...
 
void doInitialise (Scene const &scene, OpaquePassResult const &gp, LightType type, ashes::VertexBufferBase &vbo, ashes::PipelineVertexInputStateCreateInfo const &vertexLayout, SceneUbo &sceneUbo, UniformBufferT< ModelMatrixUboConfiguration > const *modelMatrixUbo, RenderPassTimer &timer)
 Initialise la passe d'éclairage. Plus de détails...
 
void doCleanup ()
 Nettoie la passe d'éclairage. Plus de détails...
 
void doPrepareCommandBuffer (Pipeline &pipeline, bool first)
 Prépare le tampon de commandes du pipeline donné. Plus de détails...
 
virtual ShaderPtr doGetPhongPixelShaderSource (SceneFlags const &sceneFlags, LightType lightType, ShadowType shadowType, bool rsm) const
 Récupère le source du pixel shader pour cette passe lumineuse. Plus de détails...
 
virtual ShaderPtr doGetPbrMRPixelShaderSource (SceneFlags const &sceneFlags, LightType lightType, ShadowType shadowType, bool rsm) const
 Récupère le source du pixel shader pour cette passe lumineuse. Plus de détails...
 
virtual ShaderPtr doGetPbrSGPixelShaderSource (SceneFlags const &sceneFlags, LightType lightType, ShadowType shadowType, bool rsm) const
 Récupère le source du pixel shader pour cette passe lumineuse. Plus de détails...
 
virtual ProgramPtr doCreateProgram ()=0
 Crée un programme de passe d'éclairage. Plus de détails...
 

Membres hérités additionnels

- Types publics hérités de castor3d::LightPass
using PipelinePtr = std::unique_ptr< Pipeline >
 
using PipelineMap = std::map< size_t, PipelinePtr >
 
using PipelineArray = std::array< Pipeline, size_t(ShadowType::eCount) *2u >
 
- Fonctions membres publiques statiques hérités de castor3d::LightPass
static size_t makeKey (Light const &light, ShadowMap const *shadowMap, TextureUnit const *vctFirstBounce, TextureUnit const *vctSecondaryBounce)
 
- Types protégés hérités de castor3d::LightPass
using ProgramPtr = std::unique_ptr< Program >
 
- Attributs protégés hérités de castor3d::LightPass
Enginem_engine
 
RenderDevice const & m_device
 
Scene const * m_scene { nullptr }
 
SceneUbom_sceneUbo { nullptr }
 
UniformBufferT< ModelMatrixUboConfiguration > const * m_mmUbo { nullptr }
 
VoxelizerUbo const * m_vctUbo { nullptr }
 
ashes::PipelineVertexInputStateCreateInfo m_usedVertexLayout { 0u, {}, {} }
 
ashes::PipelineVertexInputStateCreateInfo const * m_pUsedVertexLayout { nullptr }
 
RenderPassTimerm_timer { nullptr }
 
UniformBufferBase const * m_baseUbo { nullptr }
 
bool m_shadows
 
bool m_voxels
 
bool m_generatesIndirect
 
MatrixUbo m_matrixUbo
 
RenderPass m_firstRenderPass
 
RenderPass m_blendRenderPass
 
castor3d::ShaderModule m_vertexShader
 
castor3d::ShaderModule m_pixelShader
 
std::array< ashes::CommandBufferPtr, 2u > m_commandBuffers
 
uint32_t m_commandBufferIndex { 0u }
 
PipelineMap m_pipelines
 
Pipelinem_pipeline { nullptr }
 
SamplerSPtr m_sampler
 
ashes::VertexBufferPtr< float > m_vertexBuffer
 
ashes::PipelineVertexInputStateCreateInfoPtr m_vertexLayout
 
GpInfoUbo const & m_gpInfoUbo
 
uint32_t m_offset { 0u }
 
ashes::SemaphorePtr m_signalImgReady
 
ashes::SemaphorePtr m_signalImgFinished
 
ashes::FencePtr m_fence
 
OpaquePassResult const * m_opaquePassResult {}
 

Documentation des constructeurs et destructeur

◆ MeshLightPass()

castor3d::MeshLightPass::MeshLightPass ( RenderDevice const &  device,
castor::String const &  suffix,
LightPassConfig const &  lpConfig,
VoxelizerUbo const *  vctConfig,
LightType  type 
)

Constructeur.

Paramètres
[in]deviceLe device GPU.
[in]suffixLe suffixe du nom de la passe.
[in]lpConfigLa configuration de la passe d'éclairage.
[in]vctConfigL'UBO du voxelizer.
[in]typeLe type de source lumineuse.

◆ ~MeshLightPass()

castor3d::MeshLightPass::~MeshLightPass ( )

Destructeur.

Documentation des fonctions membres

◆ cleanup()

void castor3d::MeshLightPass::cleanup ( )
overridevirtual

Nettoie la passe d'éclairage.

Implémente castor3d::LightPass.

◆ doComputeModelMatrix()

virtual castor::Matrix4x4f castor3d::MeshLightPass::doComputeModelMatrix ( Light const &  light,
Camera const &  camera 
) const
protectedpure virtual

Calcule La matrice utilisée pour dessiner le modèle.

Paramètres
[in]lightLa source lumineuse.
[in]cameraLa caméra.
Renvoie
La matrice.

◆ doGenerateVertices()

virtual castor::Point3fArray castor3d::MeshLightPass::doGenerateVertices ( ) const
protectedpure virtual
Renvoie
Les sommets nécessaires au dessin du maillage.

◆ doGetVertexShaderSource()

ShaderPtr castor3d::MeshLightPass::doGetVertexShaderSource ( SceneFlags const &  sceneFlags) const
overrideprotectedvirtual

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

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

Implémente castor3d::LightPass.

◆ doUpdate()

void castor3d::MeshLightPass::doUpdate ( bool  first,
castor::Size const &  size,
Light const &  light,
Camera const &  camera 
)
overrideprotectedvirtual

Met à jour la passe d'éclairage.

Paramètres
[in]firstDit s'il s'agit de la première passe.
[in]sizeLes dimensions de la zone de rendu.
[in]lightLa source lumineuse.
[in]cameraLa caméra.

Implémente castor3d::LightPass.

◆ getCount()

uint32_t castor3d::MeshLightPass::getCount ( ) const
overridevirtual
Renvoie
Le nombre de primitives à dessiner.

Implémente castor3d::LightPass.

◆ initialise()

void castor3d::MeshLightPass::initialise ( Scene const &  scene,
OpaquePassResult const &  gp,
SceneUbo sceneUbo,
RenderPassTimer timer 
)
overridevirtual

Initialise la passe d'éclairage.

Paramètres
[in]sceneLa scène.
[in]gpLes tampons de la passe géométries.
[in]sceneUboL'UBO de scène.
[in]timerLe timer de passe.

Implémente castor3d::LightPass.

◆ render()

ashes::Semaphore const& castor3d::MeshLightPass::render ( uint32_t  index,
ashes::Semaphore const &  toWait 
)
overridevirtual

Dessine la passe de rendu.

Paramètres
[in]indexL'indice de la passe de rendu.
[in]toWaitLe sémaphore de la précédente passe de rendu.

Réimplémentée à partir de castor3d::LightPass.


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