From d93a47b7bbdac3afd8003254c8606a8c43154c80 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Thu, 16 May 2019 11:40:07 +0200 Subject: EEVEE: Viewport Rendering TAA EEVEE assumed that the OGL renderer did FSAA, as the FSAA was removed we needed to revalidate this assumption. The temporal sampling only inited the matrices during init phase. As now we need to update the matrices for every sample rendered the code for updating the matrices was isolated in a new function `EEVEE_temporal_sampling_update_matrices`. Reviewed By: fclem Maniphest Tasks: T64646 Differential Revision: https://developer.blender.org/D4871 --- source/blender/draw/engines/eevee/eevee_engine.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source/blender/draw/engines/eevee/eevee_engine.c') diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c index 26f33f4db31..68dc9ef52a9 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -219,6 +219,14 @@ static void eevee_draw_background(void *vedata) DRW_viewport_matrix_override_set(stl->effects->overide_wininv, DRW_MAT_WININV); } + /* when doing viewport rendering the overrides needs to be recalculated for + * every loop as this normally happens once inside + * `EEVEE_temporal_sampling_init` */ + else if (((stl->effects->enabled_effects & EFFECT_TAA) != 0) && + (stl->effects->taa_current_sample > 1) && DRW_state_is_image_render()) { + EEVEE_temporal_sampling_update_matrices(vedata); + } + /* Refresh Probes */ DRW_stats_group_start("Probes Refresh"); EEVEE_lightprobes_refresh(sldata, vedata); @@ -297,7 +305,7 @@ static void eevee_draw_background(void *vedata) EEVEE_draw_effects(sldata, vedata); DRW_stats_group_end(); - if ((stl->effects->taa_current_sample > 1) && !DRW_state_is_image_render()) { + if ((stl->effects->taa_current_sample > 1)) { DRW_viewport_matrix_override_unset_all(); } } -- cgit v1.2.3