summaryrefslogtreecommitdiffstats
path: root/Components/src/ShadowMapManager.cpp
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-07-18 17:04:48 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-07-18 17:04:48 +0000
commita90ed45acfe5c7403a916ed9c5153debcfb01589 (patch)
tree182c466c2d2e71026b468a825e04dad90cc87d37 /Components/src/ShadowMapManager.cpp
parentFixed 16-bit VSM/EVSM format from UNORM to Float (diff)
downloadDiligentFX-a90ed45acfe5c7403a916ed9c5153debcfb01589.tar.gz
DiligentFX-a90ed45acfe5c7403a916ed9c5153debcfb01589.zip
Shadows: using 16-bit UNORM instead of 16-bit float for VSM
Diffstat (limited to 'Components/src/ShadowMapManager.cpp')
-rw-r--r--Components/src/ShadowMapManager.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/Components/src/ShadowMapManager.cpp b/Components/src/ShadowMapManager.cpp
index 1120049..cba347e 100644
--- a/Components/src/ShadowMapManager.cpp
+++ b/Components/src/ShadowMapManager.cpp
@@ -85,8 +85,9 @@ void ShadowMapManager::Initialize(IRenderDevice* pDevice, const InitInfo& initIn
initInfo.ShadowMode == SHADOW_MODE_EVSM4)
{
ShadowMapDesc.BindFlags = BIND_SHADER_RESOURCE | BIND_RENDER_TARGET;
- if (initInfo.ShadowMode == SHADOW_MODE_VSM ||
- initInfo.ShadowMode == SHADOW_MODE_EVSM2)
+ if (initInfo.ShadowMode == SHADOW_MODE_VSM)
+ ShadowMapDesc.Format = initInfo.Is32BitFilterableFmt ? TEX_FORMAT_RG32_FLOAT : TEX_FORMAT_RG16_UNORM;
+ else if(initInfo.ShadowMode == SHADOW_MODE_EVSM2)
ShadowMapDesc.Format = initInfo.Is32BitFilterableFmt ? TEX_FORMAT_RG32_FLOAT : TEX_FORMAT_RG16_FLOAT;
else if (initInfo.ShadowMode == SHADOW_MODE_EVSM4)
ShadowMapDesc.Format = initInfo.Is32BitFilterableFmt ? TEX_FORMAT_RGBA32_FLOAT : TEX_FORMAT_RGBA16_FLOAT;