diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-08-24 12:24:33 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-08-24 12:24:33 +0300 |
commit | 35ef42d967c7c127dea8bcd6b8173e722f3a853c (patch) | |
tree | 7ae96861257185558b2f82f815e9429a8baa4629 /source/blender/draw/engines/eevee | |
parent | 40edb84dcf4f05fe2d6a73170617af0eab0cd5ff (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')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_temporal_sampling.c | 7 |
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()) && |