Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-08-24 12:24:33 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-08-24 12:24:33 +0300
commit35ef42d967c7c127dea8bcd6b8173e722f3a853c (patch)
tree7ae96861257185558b2f82f815e9429a8baa4629
parent40edb84dcf4f05fe2d6a73170617af0eab0cd5ff (diff)
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
-rw-r--r--source/blender/draw/engines/eevee/eevee_temporal_sampling.c7
1 files changed, 5 insertions, 2 deletions
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()) &&