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