Castor3D
0.11.0
Multiplatform 3D engine
|
Classes | |
struct | Program |
Programme de passe de lumière directionnelle. Plus de détails... | |
Fonctions membres publiques | |
DirectionalLightPass (RenderDevice const &device, castor::String const &suffix, LightPassConfig const &lpConfig, VoxelizerUbo const *vctConfig=nullptr) | |
Constructeur. Plus de détails... | |
DirectionalLightPass (RenderDevice const &device, LightPassConfig const &lpConfig, VoxelizerUbo const *vctConfig=nullptr) | |
Constructeur. 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... | |
void | accept (PipelineVisitorBase &visitor) override |
Fonction d'acceptation de visiteur. 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 ashes::Semaphore const & | render (uint32_t index, ashes::Semaphore const &toWait) |
Dessine la passe de rendu. 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... | |
LightPass::ProgramPtr | doCreateProgram () override |
Crée un programme de passe d'éclairage. Plus de détails... | |
Fonctions membres protégées hérités de castor3d::LightPass | |
virtual Pipeline * | doGetPipeline (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... | |
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 | |
Engine & | m_engine |
RenderDevice const & | m_device |
Scene const * | m_scene { nullptr } |
SceneUbo * | m_sceneUbo { nullptr } |
UniformBufferT< ModelMatrixUboConfiguration > const * | m_mmUbo { nullptr } |
VoxelizerUbo const * | m_vctUbo { nullptr } |
ashes::PipelineVertexInputStateCreateInfo | m_usedVertexLayout { 0u, {}, {} } |
ashes::PipelineVertexInputStateCreateInfo const * | m_pUsedVertexLayout { nullptr } |
RenderPassTimer * | m_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 |
Pipeline * | m_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 {} |
castor3d::DirectionalLightPass::DirectionalLightPass | ( | RenderDevice const & | device, |
castor::String const & | suffix, | ||
LightPassConfig const & | lpConfig, | ||
VoxelizerUbo const * | vctConfig = nullptr |
||
) |
Constructeur.
[in] | device | Le device GPU. |
[in] | suffix | Le suffixe du nom de la passe. |
[in] | lpConfig | La configuration de la passe d'éclairage. |
[in] | vctConfig | L'UBO du voxelizer. |
|
inline |
Constructeur.
[in] | device | Le device GPU. |
[in] | lpConfig | La configuration de la passe d'éclairage. |
[in] | vctConfig | L'UBO du voxelizer. |
|
overridevirtual |
Fonction d'acceptation de visiteur.
visitor | Le ... visiteur. |
Implémente castor3d::LightPass.
|
overridevirtual |
Nettoie la passe d'éclairage.
Implémente castor3d::LightPass.
|
overrideprotectedvirtual |
|
overrideprotectedvirtual |
Récupère le source du vertex shader pour cette passe lumineuse.
[in] | sceneFlags | Les indicateurs de scène. |
Implémente castor3d::LightPass.
|
overrideprotectedvirtual |
Met à jour la passe d'éclairage.
[in] | first | Dit s'il s'agit de la première passe. |
[in] | size | Les dimensions de la zone de rendu. |
[in] | light | La source lumineuse. |
[in] | camera | La caméra. |
Implémente castor3d::LightPass.
|
overridevirtual |
Implémente castor3d::LightPass.
|
overridevirtual |
Initialise la passe d'éclairage.
[in] | scene | La scène. |
[in] | gp | Les tampons de la passe géométries. |
[in] | sceneUbo | L'UBO de scène. |
[in] | timer | Le timer de passe. |
Implémente castor3d::LightPass.