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

Classes

struct  Program
 Programme de passe de lumière omnidirectionnelle. Plus de détails...
 

Fonctions membres publiques

 PointLightPass (RenderDevice const &device, castor::String const &suffix, LightPassConfig const &lpConfig, VoxelizerUbo const *vctConfig=nullptr)
 Constructeur. Plus de détails...
 
 PointLightPass (RenderDevice const &device, LightPassConfig const &lpConfig, VoxelizerUbo const *vctConfig=nullptr)
 Constructeur. Plus de détails...
 
 ~PointLightPass ()
 Destructeur. Plus de détails...
 
void accept (PipelineVisitorBase &visitor) override
 Fonction d'acceptation de visiteur. Plus de détails...
 
- Fonctions membres publiques hérités de castor3d::MeshLightPass
 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...
 
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
 

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 >
 
- Fonctions membres protégées hérités de castor3d::MeshLightPass
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...
 
- 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...
 
- 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

◆ PointLightPass() [1/2]

castor3d::PointLightPass::PointLightPass ( RenderDevice const &  device,
castor::String const &  suffix,
LightPassConfig const &  lpConfig,
VoxelizerUbo const *  vctConfig = nullptr 
)

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.

◆ PointLightPass() [2/2]

castor3d::PointLightPass::PointLightPass ( RenderDevice const &  device,
LightPassConfig const &  lpConfig,
VoxelizerUbo const *  vctConfig = nullptr 
)
inline

Constructeur.

Paramètres
[in]deviceLe device GPU.
[in]lpConfigLa configuration de la passe d'éclairage.
[in]vctConfigL'UBO du voxelizer.

◆ ~PointLightPass()

castor3d::PointLightPass::~PointLightPass ( )

Destructeur.

Documentation des fonctions membres

◆ accept()

void castor3d::PointLightPass::accept ( PipelineVisitorBase visitor)
overridevirtual

Fonction d'acceptation de visiteur.

Paramètres
visitorLe ... visiteur.

Implémente castor3d::LightPass.


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