diff --git a/projects/indirect_dispatch/resources/shaders/motionBlurDummy.comp b/projects/indirect_dispatch/resources/shaders/motionBlurDummy.comp
index a57319b9e072c5d1732894d75f65cc91812e2a39..a90e142d71fba7299efc9879219ad1d0ff223709 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;