From ee687440c7707c15360434c8e5f4566d9610435a Mon Sep 17 00:00:00 2001 From: Vincent Lejeune <vljn@ovi.com> Date: Wed, 29 Oct 2014 18:57:39 +0100 Subject: [PATCH] Increase shadow filtering --- data/shaders/sunlightshadow.frag | 7 ++++--- src/graphics/render_geometry.cpp | 3 +++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/data/shaders/sunlightshadow.frag b/data/shaders/sunlightshadow.frag index 0fe6dc07f..6f5996969 100644 --- a/data/shaders/sunlightshadow.frag +++ b/data/shaders/sunlightshadow.frag @@ -43,11 +43,12 @@ float getShadowFactor(vec3 pos, float bias, int index) //float shadowmapz = 2. * texture(shadowtex, vec3(shadowtexcoord, shadowcoord.z).x - 1.; // bias += smoothstep(0.001, 0.1, moved) * 0.014; // According to the warping float sum = 0.; - for (int i = 0; i < 4; i++) + for (float i = -1.5; i <= 1.5; i+= 1.) { - sum += texture(shadowtex, vec4(shadowtexcoord + shadowoffset[i] / 2048., float(index), 0.5 * shadowcoord.z + 0.5)); + for (float j = -1.5; j <= 1.5; j+= 1.) + sum += texture(shadowtex, vec4(shadowtexcoord +vec2(i, j) / 1024., float(index), 0.5 * shadowcoord.z + 0.5)); } - return sum / 4.; + return sum / 16.; } void main() { diff --git a/src/graphics/render_geometry.cpp b/src/graphics/render_geometry.cpp index ba9b30916..9f602bc0b 100644 --- a/src/graphics/render_geometry.cpp +++ b/src/graphics/render_geometry.cpp @@ -978,6 +978,8 @@ void IrrDriver::renderShadows() glDepthMask(GL_TRUE); glEnable(GL_DEPTH_TEST); glDisable(GL_BLEND); + glEnable(GL_CULL_FACE); + glCullFace(GL_FRONT); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(1.5, 0.); m_rtts->getShadowFBO().Bind(); @@ -1022,6 +1024,7 @@ void IrrDriver::renderShadows() } glDisable(GL_POLYGON_OFFSET_FILL); + glCullFace(GL_BACK); }