diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-08-03 23:08:43 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-08-05 03:26:44 +0300 |
commit | 3a522f7a7ffd49ae51ccdd2b050eee6f15b98ac2 (patch) | |
tree | 76a22f0c86adfd977d79c4aa27a7e0f0235fd3a1 /source | |
parent | 3ebe97c06b67d1611dfeaa3919512155416b0378 (diff) |
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.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_engine.c | 6 |
1 files changed, 6 insertions, 0 deletions
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) |