From 3f49d286ccf9dc120ec40bdf0d0a479cb3a50f42 Mon Sep 17 00:00:00 2001 From: Omar Emara Date: Wed, 25 Oct 2023 16:28:09 +0300 Subject: [PATCH] Fix #113864: Compositor translation is doubled Translations in the realtime compositor are doubled where there is a rotation or scale component. That was due to applying translations even after domain realization. So this patch restricts the translation to the case where domain realization doesn't take place. --- .../realtime_compositor/algorithms/intern/transform.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/blender/compositor/realtime_compositor/algorithms/intern/transform.cc b/source/blender/compositor/realtime_compositor/algorithms/intern/transform.cc index 1fc90c8f40a..c245796bee6 100644 --- a/source/blender/compositor/realtime_compositor/algorithms/intern/transform.cc +++ b/source/blender/compositor/realtime_compositor/algorithms/intern/transform.cc @@ -77,11 +77,10 @@ void transform(Context &context, } else { input.pass_through(output); + const float3x3 translation_matrix = math::from_location(translation); + output.transform(translation_matrix); } - /* Translation transformations are delayed and are only stored in the result. */ - const float3x3 translation_matrix = math::from_location(translation); - output.transform(translation_matrix); output.get_realization_options().interpolation = interpolation; }