summaryrefslogtreecommitdiffstats
path: root/Components/src/ShadowMapManager.cpp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-07-17 01:27:44 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-07-17 01:27:44 +0000
commitff903bc7ea09de7196337a1567e3427bbd6e6cd6 (patch)
tree780142e2445fdda90490db19a12e84427c975247 /Components/src/ShadowMapManager.cpp
parentShadows: implemented filtering across cascades (diff)
downloadDiligentFX-ff903bc7ea09de7196337a1567e3427bbd6e6cd6.tar.gz
DiligentFX-ff903bc7ea09de7196337a1567e3427bbd6e6cd6.zip
Shadows: improved blending between cascades
Diffstat (limited to 'Components/src/ShadowMapManager.cpp')
-rw-r--r--Components/src/ShadowMapManager.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/Components/src/ShadowMapManager.cpp b/Components/src/ShadowMapManager.cpp
index f786e3f..2564c2a 100644
--- a/Components/src/ShadowMapManager.cpp
+++ b/Components/src/ShadowMapManager.cpp
@@ -211,8 +211,8 @@ void ShadowMapManager::DistributeCascades(const DistributeCascadeInfo& Info,
f3CascadeExtent.y *= f2CascadeSize.y / (f2CascadeSize.y - f2Extension.y);
// Filter radius is defined in projection space, thus x2
- CurrCascade.f4MaxFilterRadiusProjSpace.x = Info.MaxFixedFilterRadius.x * 2.f / f2CascadeSize.x;
- CurrCascade.f4MaxFilterRadiusProjSpace.y = Info.MaxFixedFilterRadius.y * 2.f / f2CascadeSize.y;
+ CurrCascade.f4MarginProjSpace.x = Info.MaxFixedFilterRadius.x * 2.f / f2CascadeSize.x;
+ CurrCascade.f4MarginProjSpace.y = Info.MaxFixedFilterRadius.y * 2.f / f2CascadeSize.y;
// Align cascade center with the shadow map texels to alleviate temporal aliasing
if (Info.SnapCascades)
@@ -226,8 +226,8 @@ void ShadowMapManager::DistributeCascades(const DistributeCascadeInfo& Info,
// Extend cascade Z range to allow room for filtering
float fZExtension = std::max(Info.MaxFixedFilterRadius.x / f2CascadeSize.x, Info.MaxFixedFilterRadius.y / f2CascadeSize.y) * ShadowAttribs.fReceiverPlaneDepthBiasClamp;
fZExtension = std::min(fZExtension, 0.25f);
- CurrCascade.f4MaxFilterRadiusProjSpace.z = fZExtension * (IsGL ? 2.f : 1.f);
- CurrCascade.f4MaxFilterRadiusProjSpace.w = fZExtension * (IsGL ? 2.f : 1.f);
+ CurrCascade.f4MarginProjSpace.z = fZExtension * (IsGL ? 2.f : 1.f);
+ CurrCascade.f4MarginProjSpace.w = fZExtension * (IsGL ? 2.f : 1.f);
f3CascadeExtent.z *= 1.f / (1.f - fZExtension * 2.f);
// Compute new cascade min/max xy coords