Improved shadow quality
* Default shadow texture is 2048 * Worse shadows use single region * Always use object shadowingdev
parent
83b9ded0dc
commit
63b6bcf38d
|
@ -248,7 +248,7 @@ CEngine::CEngine(CApplication *app, CSystemUtils* systemUtils)
|
|||
m_textureAnisotropy = 1;
|
||||
m_shadowMapping = true;
|
||||
m_offscreenShadowRendering = true;
|
||||
m_offscreenShadowRenderingResolution = 1024;
|
||||
m_offscreenShadowRenderingResolution = 2048;
|
||||
m_qualityShadows = true;
|
||||
m_terrainShadows = false;
|
||||
m_shadowRange = 0.0f;
|
||||
|
@ -2925,7 +2925,7 @@ void CEngine::Draw3DScene()
|
|||
objectRenderer->SetFog(fogStart, fogEnd, { fogColor.r, fogColor.g, fogColor.b });
|
||||
objectRenderer->SetAlphaScissor(0.0f);
|
||||
|
||||
if (m_shadowMapping && m_qualityShadows)
|
||||
if (m_shadowMapping)
|
||||
objectRenderer->SetShadowParams(m_shadowRegions, shadowParams);
|
||||
else
|
||||
objectRenderer->SetShadowParams(0, nullptr);
|
||||
|
@ -3407,6 +3407,8 @@ void CEngine::RenderShadowMap()
|
|||
|
||||
CProfiler::StartPerformanceCounter(PCNT_RENDER_SHADOW_MAP);
|
||||
|
||||
if (m_qualityShadows)
|
||||
{
|
||||
m_shadowRegions = 4;
|
||||
|
||||
m_shadowParams[0].range = 16.0;
|
||||
|
@ -3424,6 +3426,15 @@ void CEngine::RenderShadowMap()
|
|||
m_shadowParams[3].range = 1024.0;
|
||||
m_shadowParams[3].offset = { 0.5, 0.5 };
|
||||
m_shadowParams[3].scale = { 0.5, 0.5 };
|
||||
}
|
||||
else
|
||||
{
|
||||
m_shadowRegions = 1;
|
||||
|
||||
m_shadowParams[0].range = 256.0;
|
||||
m_shadowParams[0].offset = { 0.0, 0.0 };
|
||||
m_shadowParams[0].scale = { 1.0, 1.0 };
|
||||
}
|
||||
|
||||
// If no shadow map texture exists, create it
|
||||
if (m_shadowMap.id == 0)
|
||||
|
|
Loading…
Reference in New Issue