summaryrefslogtreecommitdiff
path: root/client/shaders/object_shader/opengl_fragment.glsl
diff options
context:
space:
mode:
authorDmitry Kostenko <codeforsmile@gmail.com>2022-02-14 09:00:55 +0100
committerx2048 <codeforsmile@gmail.com>2022-03-07 23:45:26 +0100
commit25c1974e0d734b6e80d128b325e8e6b506a7401b (patch)
tree7cec8aae9b7b5e4336133208f641b2ce820c5536 /client/shaders/object_shader/opengl_fragment.glsl
parent12896b22d8e30689c57ef17c23ec3165abaa7de7 (diff)
downloadminetest-25c1974e0d734b6e80d128b325e8e6b506a7401b.tar.gz
minetest-25c1974e0d734b6e80d128b325e8e6b506a7401b.tar.bz2
minetest-25c1974e0d734b6e80d128b325e8e6b506a7401b.zip
Change normal bias for entities to avoid shadow acne
Diffstat (limited to 'client/shaders/object_shader/opengl_fragment.glsl')
-rw-r--r--client/shaders/object_shader/opengl_fragment.glsl10
1 files changed, 1 insertions, 9 deletions
diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl
index 48066adc3..fdfcec0c8 100644
--- a/client/shaders/object_shader/opengl_fragment.glsl
+++ b/client/shaders/object_shader/opengl_fragment.glsl
@@ -56,12 +56,6 @@ vec4 getPerspectiveFactor(in vec4 shadowPosition)
return shadowPosition;
}
-// assuming near is always 1.0
-float getLinearDepth()
-{
- return 2.0 * f_shadowfar / (f_shadowfar + 1.0 - (2.0 * gl_FragCoord.z - 1.0) * (f_shadowfar - 1.0));
-}
-
vec3 getLightSpacePosition()
{
vec4 pLightSpace;
@@ -69,8 +63,7 @@ vec3 getLightSpacePosition()
#if DRAW_TYPE == NDT_PLANTLIKE
pLightSpace = m_ShadowViewProj * vec4(worldPosition, 1.0);
#else
- float offsetScale = (0.0057 * getLinearDepth() + normalOffsetScale);
- pLightSpace = m_ShadowViewProj * vec4(worldPosition + offsetScale * normalize(vNormal), 1.0);
+ pLightSpace = m_ShadowViewProj * vec4(worldPosition + normalOffsetScale * normalize(vNormal), 1.0);
#endif
pLightSpace = getPerspectiveFactor(pLightSpace);
return pLightSpace.xyz * 0.5 + 0.5;
@@ -544,6 +537,5 @@ void main(void)
float clarity = clamp(fogShadingParameter
- fogShadingParameter * length(eyeVec) / fogDistance, 0.0, 1.0);
col = mix(skyBgColor, col, clarity);
-
gl_FragColor = vec4(col.rgb, base.a);
}