From 484794ce6747068f898273328138fb96c263feac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 9 Jul 2019 14:34:38 +0200 Subject: Eevee: Fix first sample being accumulated without SSR We check if the previous iteration (sample) was using a valid double buffer. If it wasn't, we request another iteration. This fix the issue for viewport,viewport render and image render. Related to T65761 Eevee render inconsistency between 3D View, Viewport render, and F12 Render --- source/blender/draw/engines/eevee/eevee_engine.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (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 99be7ec631c..b36ad540ef9 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -303,6 +303,16 @@ static void eevee_draw_background(void *vedata) DRW_stats_group_end(); DRW_view_set_active(NULL); + + if (DRW_state_is_image_render() && (stl->effects->enabled_effects & EFFECT_SSR) && + !stl->effects->ssr_was_valid_double_buffer) { + /* SSR needs one iteration to start properly. */ + loop_len++; + /* Reset sampling (and accumulation) after the first sample to avoid + * washed out first bounce for SSR. */ + EEVEE_temporal_sampling_reset(vedata); + stl->effects->ssr_was_valid_double_buffer = stl->g_data->valid_double_buffer; + } } /* Tonemapping and transfer result to default framebuffer. */ -- cgit v1.2.3