summaryrefslogtreecommitdiff
path: root/client/shaders/object_shader/opengl_vertex.glsl
diff options
context:
space:
mode:
authorx2048 <codeforsmile@gmail.com>2022-05-21 16:49:30 +0200
committerGitHub <noreply@github.com>2022-05-21 16:49:30 +0200
commitdc45b85a543b4c8ad72f69a554ecfe7f0a60c533 (patch)
tree348a20f17c19d8e886ca669e339a7f4875aa7778 /client/shaders/object_shader/opengl_vertex.glsl
parenta4ef62f5b215fe0f23e3e50672f1538854db4ed9 (diff)
downloadminetest-dc45b85a543b4c8ad72f69a554ecfe7f0a60c533.tar.gz
minetest-dc45b85a543b4c8ad72f69a554ecfe7f0a60c533.tar.bz2
minetest-dc45b85a543b4c8ad72f69a554ecfe7f0a60c533.zip
Improve shadow filters (#12195)
* Rewrite shadow filtering for the new distortion * Calculate penumbra radius using a single sample * Avoid peter-panning effect due to filtering of short shadows * Add adaptive filter quality for soft shadows * Avoid sharp shadows on surfaces without normals (e.g. plants) * Increase default and maximum soft shadow radius * Make line numbers in shader errors match the code
Diffstat (limited to 'client/shaders/object_shader/opengl_vertex.glsl')
-rw-r--r--client/shaders/object_shader/opengl_vertex.glsl2
1 files changed, 2 insertions, 0 deletions
diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl
index 6dc25f854..dc9c70cdf 100644
--- a/client/shaders/object_shader/opengl_vertex.glsl
+++ b/client/shaders/object_shader/opengl_vertex.glsl
@@ -30,6 +30,7 @@ centroid varying vec2 varTexCoord;
varying float adj_shadow_strength;
varying float f_normal_length;
varying vec3 shadow_position;
+ varying float perspective_factor;
#endif
varying vec3 eyeVec;
@@ -162,6 +163,7 @@ void main(void)
shadow_position = applyPerspectiveDistortion(m_ShadowViewProj * mWorld * (inVertexPosition + vec4(normalOffsetScale * nNormal, 0.0))).xyz;
shadow_position.z -= z_bias;
+ perspective_factor = pFactor;
if (f_timeofday < 0.2) {
adj_shadow_strength = f_shadow_strength * 0.5 *