[Bf-blender-cvs] [35ef42d967c] blender-v2.90-release: Fix T79970 EEVEE: Camera Animation Breaks Motion Blur (Two Steps or More)

Clément Foucault noreply at git.blender.org
Mon Aug 24 11:24:41 CEST 2020


Commit: 35ef42d967c7c127dea8bcd6b8173e722f3a853c
Author: Clément Foucault
Date:   Mon Aug 24 11:24:33 2020 +0200
Branches: blender-v2.90-release
https://developer.blender.org/rB35ef42d967c7c127dea8bcd6b8173e722f3a853c

Fix T79970 EEVEE: Camera Animation Breaks Motion Blur (Two Steps or More)

This was caused by motion blur camera movement tagging the view as
invalid and thus resetting the temporal sampling.

Critical fix for 2.90. Need second look, but quite confident. This function
is only called once when Motion blur is off.

Reviewed by: jbakker

Differential Revision: https://developer.blender.org/D8676

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

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

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

diff --git a/source/blender/draw/engines/eevee/eevee_temporal_sampling.c b/source/blender/draw/engines/eevee/eevee_temporal_sampling.c
index 01db16b1289..918e13ec729 100644
--- a/source/blender/draw/engines/eevee/eevee_temporal_sampling.c
+++ b/source/blender/draw/engines/eevee/eevee_temporal_sampling.c
@@ -247,8 +247,11 @@ int EEVEE_temporal_sampling_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data
     effects->taa_total_sample = first_sample_only ? 1 : scene_eval->eevee.taa_samples;
     MAX2(effects->taa_total_sample, 0);
 
-    DRW_view_persmat_get(NULL, persmat, false);
-    view_is_valid = view_is_valid && compare_m4m4(persmat, effects->prev_drw_persmat, FLT_MIN);
+    /* Motion blur steps could reset the sampling when camera is animated (see T79970). */
+    if (!DRW_state_is_scene_render()) {
+      DRW_view_persmat_get(NULL, persmat, false);
+      view_is_valid = view_is_valid && compare_m4m4(persmat, effects->prev_drw_persmat, FLT_MIN);
+    }
 
     /* Prevent ghosting from probe data. */
     view_is_valid = view_is_valid && (effects->prev_drw_support == DRW_state_draw_support()) &&



More information about the Bf-blender-cvs mailing list