Commit: 3a522f7a7ffd49ae51ccdd2b050eee6f15b98ac2
Author: Clément Foucault
Date:   Mon Aug 3 22:08:43 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rB3a522f7a7ffd49ae51ccdd2b050eee6f15b98ac2

Fix T79213 EEVEE: rendering with motion blur can change current frame

It seems to be expected that the render engine reset to the right CFRA
if it modifies it.

===================================================================

M       source/blender/draw/engines/eevee/eevee_engine.c

===================================================================

diff --git a/source/blender/draw/engines/eevee/eevee_engine.c 
b/source/blender/draw/engines/eevee/eevee_engine.c
index f42c60b04bf..d49bb5a268c 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -459,6 +459,7 @@ static void eevee_render_to_image(void *vedata,
   }
   EEVEE_PrivateData *g_data = ved->stl->g_data;
 
+  int initial_frame = CFRA;
   int steps = max_ii(1, scene->eevee.motion_blur_steps);
   int time_steps_tot = (do_motion_blur) ? steps : 1;
   g_data->render_tot_samples = divide_ceil_u(scene->eevee.taa_render_samples, 
time_steps_tot);
@@ -558,6 +559,11 @@ static void eevee_render_to_image(void *vedata,
 
   /* Restore original viewport size. */
   DRW_render_viewport_size_set((int[2]){g_data->size_orig[0], 
g_data->size_orig[1]});
+
+  if (CFRA != initial_frame) {
+    /* Restore original frame number. This is because the render pipeline 
expects it. */
+    RE_engine_frame_set(engine, initial_frame, 0.0f);
+  }
 }
 
 static void eevee_engine_free(void)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to