![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <CascadedShadowMapsGenerator.h>
Public Member Functions | |
CascadedShadowMapsGenerator (GFXDevice &context) | |
~CascadedShadowMapsGenerator () override | |
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) |
![]() | |
virtual | ~ShadowMapGenerator ()=default |
Protected Types | |
using | SplitDepths = std::array< F32, Config::Lighting::MAX_CSM_SPLITS_PER_LIGHT > |
Protected Member Functions | |
SplitDepths | calculateSplitDepths (DirectionalLightComponent &light, const vec2< F32 > nearFarPlanes) const noexcept |
void | applyFrustumSplits (DirectionalLightComponent &light, const Camera &shadowCamera, U8 numSplits) const |
void | updateMSAASampleCount (U8 sampleCount) override |
void | blurTarget (U16 layerOffset, U16 layerCount, GFX::CommandBuffer &bufferInOut) |
![]() | |
ShadowMapGenerator (GFXDevice &context, ShadowType type) noexcept | |
virtual void | render (const Camera &playerCamera, Light &light, U16 lightIndex, GFX::CommandBuffer &bufferInOut, GFX::MemoryBarrierCommand &memCmdInOut)=0 |
virtual void | updateMSAASampleCount (const U8 sampleCount) |
Protected Attributes | |
Pipeline * | _blurPipelineCSM = nullptr |
Pipeline * | _blurPipelineAO = nullptr |
Handle< ShaderProgram > | _blurDepthMapShader = INVALID_HANDLE<ShaderProgram> |
Handle< ShaderProgram > | _blurAOMapShader = INVALID_HANDLE<ShaderProgram> |
PushConstantsStruct | _shaderConstants |
RenderTargetHandle | _drawBufferDepth |
RenderTargetHandle | _blurBuffer |
![]() | |
GFXDevice & | _context |
const ShadowType | _type |
Directional lights can't deliver good quality shadows using a single shadow map. This technique offers an implementation of the CSM method
Definition at line 55 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 64 of file CascadedShadowMapsGenerator.h.
|
explicit |
Definition at line 43 of file CascadedShadowMapsGenerator.cpp.
|
override |
Definition at line 188 of file CascadedShadowMapsGenerator.cpp.
|
protected |
Definition at line 241 of file CascadedShadowMapsGenerator.cpp.
|
protected |
Definition at line 530 of file CascadedShadowMapsGenerator.cpp.
|
protectednoexcept |
Definition at line 200 of file CascadedShadowMapsGenerator.cpp.
void Divide::CascadedShadowMapsGenerator::generateWorldAO | ( | const Camera & | playerCamera, |
GFX::CommandBuffer & | bufferInOut, | ||
GFX::MemoryBarrierCommand & | memCmdInOut | ||
) |
Definition at line 457 of file CascadedShadowMapsGenerator.cpp.
|
overridevirtual |
Implements Divide::ShadowMapGenerator.
Definition at line 379 of file CascadedShadowMapsGenerator.cpp.
|
overrideprotectedvirtual |
Reimplemented from Divide::ShadowMapGenerator.
Definition at line 594 of file CascadedShadowMapsGenerator.cpp.
|
protected |
Definition at line 79 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 82 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 78 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 77 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 76 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 81 of file CascadedShadowMapsGenerator.h.
|
protected |
Definition at line 80 of file CascadedShadowMapsGenerator.h.