33#ifndef DVD_CSM_GENERATOR_H_
34#define DVD_CSM_GENERATOR_H_
64 using SplitDepths = std::array<F32, Config::Lighting::MAX_CSM_SPLITS_PER_LIGHT>;
void render(const Camera &playerCamera, Light &light, U16 lightIndex, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut) override
void generateWorldAO(const Camera &playerCamera, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)
void applyFrustumSplits(DirectionalLightComponent &light, const Camera &shadowCamera, U8 numSplits) const
void blurTarget(U16 layerOffset, U16 layerCount, GFX::CommandBuffer &bufferInOut)
std::array< F32, Config::Lighting::MAX_CSM_SPLITS_PER_LIGHT > SplitDepths
PushConstantsStruct _shaderConstants
RenderTargetHandle _blurBuffer
Pipeline * _blurPipelineAO
Pipeline * _blurPipelineCSM
Handle< ShaderProgram > _blurAOMapShader
Handle< ShaderProgram > _blurDepthMapShader
RenderTargetHandle _drawBufferDepth
void updateMSAASampleCount(U8 sampleCount) override
~CascadedShadowMapsGenerator() override
SplitDepths calculateSplitDepths(DirectionalLightComponent &light, const vec2< F32 > nearFarPlanes) const noexcept
Rough around the edges Adapter pattern abstracting the actual rendering API and access to the GPU.
A light object placed in the scene at a certain position.
Handle console commands that start with a forward slash.
DirectionalLightComponent(SceneGraphNode *sgn, PlatformContext &context)