From 09842dd1b518cafabff6cc3436561c9d7f905727 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Tue, 24 Jul 2018 23:37:16 +0200 Subject: [PATCH] Fix the patch out-of-bounds check in motion search (it was all broken). --- motion_search.frag | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/motion_search.frag b/motion_search.frag index d407c0d..a32868b 100644 --- a/motion_search.frag +++ b/motion_search.frag @@ -139,11 +139,12 @@ void main() // Also reject if the patch goes out-of-bounds (the paper does not mention this, // but the code does, and it seems to be critical to avoid really bad behavior // at the edges). + vec2 patch_center = (base * image_size - 0.5f) + patch_size * 0.5f + u; if (length(u - initial_u) > (patch_size * 0.5f) || - u.x < -(patch_size * 0.5f) || - image_size.x - u.x < -(patch_size * 0.5f) || - u.y < -(patch_size * 0.5f) || - image_size.y - u.y < -(patch_size * 0.5f)) { + patch_center.x < -(patch_size * 0.5f) || + image_size.x - patch_center.x < -(patch_size * 0.5f) || + patch_center.y < -(patch_size * 0.5f) || + image_size.y - patch_center.y < -(patch_size * 0.5f)) { u = initial_u; mean_diff = first_mean_diff; } -- 2.39.2