From 7a78a50146abfbac6700683df40e1cfba9bf0a10 Mon Sep 17 00:00:00 2001 From: Alexander Gauggel <agauggel@uni-koblenz.de> Date: Thu, 12 Aug 2021 17:39:22 +0200 Subject: [PATCH] [#106] Fix motion blur artifacts properly --- .../resources/shaders/motionBlurDummy.comp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/projects/indirect_dispatch/resources/shaders/motionBlurDummy.comp b/projects/indirect_dispatch/resources/shaders/motionBlurDummy.comp index a57319b9..a90e142d 100644 --- a/projects/indirect_dispatch/resources/shaders/motionBlurDummy.comp +++ b/projects/indirect_dispatch/resources/shaders/motionBlurDummy.comp @@ -14,7 +14,6 @@ layout( push_constant ) uniform constants{ float minVelocity; }; - void main(){ if(any(greaterThanEqual(gl_GlobalInvocationID.xy, imageSize(outImage)))) @@ -25,6 +24,7 @@ void main(){ vec2 uv = vec2(coord) / textureRes; vec2 motion = texture(sampler2D(inMotion, textureSampler), uv).rg; + motion *= motionFactor; float velocity = length(motion); // early out on little movement @@ -34,7 +34,11 @@ void main(){ return; } - motion *= motionFactor; + // TODO: should be configurable by user or computed by velocity tile sizes + const float maxBlurDistance = 0.075; + if(velocity > maxBlurDistance){ + motion *= maxBlurDistance / velocity; + } vec3 color = vec3(0); const int sampleCount = 16; -- GitLab