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 /source/blender/draw/engines/eevee/eevee_temporal_sampling.c
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
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_temporal_sampling.c')
-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()) &&