Class CascadedShadowMap#

Class Documentation#

class CascadedShadowMap#

Public Functions

CascadedShadowMap() = default#
CascadedShadowMap(const CascadedShadowMap&) = delete#
CascadedShadowMap &operator=(const CascadedShadowMap&) = delete#
void init(const std::shared_ptr<VulkanDevice> &device, uint32_t width, uint32_t height, uint32_t num_cascades, vk::DescriptorSetLayout sharedRenderDescriptorSetLayout, uint32_t swapChainImageCount, vk::CommandPool commandPool)#
void createGraphicsPipeline()#
void shaderHotReload()#
void recordCommands(vk::CommandBuffer &commandBuffer, uint32_t image_index, Scene *scene, std::span<const vk::DescriptorSet> descriptorSets, bool cullingEnabled)#
inline Kataglyphis::Texture *getShadowMapArray() const#
inline vk::RenderPass getRenderPass() const#
void updateCascades(const glm::mat4 &cameraView, float cameraFov, float aspect, float nearPlane, float farPlane, const glm::vec3 &lightDir, float shadowDistance = 0.0F, float splitLambda = 0.0F)#
inline const std::vector<CascadeData> &getCascadeData() const#
void uploadLightMatrices(uint32_t image_index)#
inline unsigned int getCastersDrawn() const#

Caster draws submitted / considered across all cascades in the last recordCommands call. Summed over cascades, so a 3-cascade scene with one mesh considers 3.

inline unsigned int getCastersConsidered() const#
void cleanUp()#
inline ~CascadedShadowMap()#