From 800641a77f9c12c9df76089b4ca18901390ac8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Tue, 21 May 2019 17:53:49 +0200 Subject: Eevee: Make Planar reflections work with the new DRWView system Also get rid of clip_block which did the same as clipplanes inside common_view_lib.glsl. --- source/blender/draw/engines/eevee/eevee_engine.c | 34 +++++++++--------------- 1 file changed, 12 insertions(+), 22 deletions(-) (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 35614ac79fc..bb37f36f935 100644 --- a/source/blender/draw/engines/eevee/eevee_engine.c +++ b/source/blender/draw/engines/eevee/eevee_engine.c @@ -79,9 +79,6 @@ static void eevee_engine_init(void *ved) sldata->common_ubo = DRW_uniformbuffer_create(sizeof(sldata->common_data), &sldata->common_data); } - if (sldata->clip_ubo == NULL) { - sldata->clip_ubo = DRW_uniformbuffer_create(sizeof(sldata->clip_data), &sldata->clip_data); - } /* EEVEE_effects_init needs to go first for TAA */ EEVEE_effects_init(sldata, vedata, camera, false); @@ -209,12 +206,22 @@ static void eevee_draw_background(void *vedata) /* Copy previous persmat to UBO data */ copy_m4_m4(sldata->common_data.prev_persmat, stl->effects->prev_persmat); + /* Refresh Probes */ + DRW_stats_group_start("Probes Refresh"); + EEVEE_lightprobes_refresh(sldata, vedata); + EEVEE_lightprobes_refresh_planar(sldata, vedata); + DRW_stats_group_end(); + + /* Refresh shadows */ + DRW_stats_group_start("Shadows"); + EEVEE_draw_shadows(sldata, vedata, stl->effects->taa_view); + DRW_stats_group_end(); + if (((stl->effects->enabled_effects & EFFECT_TAA) != 0) && (stl->effects->taa_current_sample > 1) && !DRW_state_is_image_render() && !taa_use_reprojection) { DRW_view_set_active(stl->effects->taa_view); } - /* when doing viewport rendering the overrides needs to be recalculated for * every loop as this normally happens once inside * `EEVEE_temporal_sampling_init` */ @@ -223,21 +230,6 @@ static void eevee_draw_background(void *vedata) EEVEE_temporal_sampling_update_matrices(vedata); } - /* Refresh Probes */ - DRW_stats_group_start("Probes Refresh"); - EEVEE_lightprobes_refresh(sldata, vedata); - /* Probes refresh can have reset the current sample. */ - if (stl->effects->taa_current_sample == 1) { - DRW_viewport_matrix_override_unset_all(); - } - EEVEE_lightprobes_refresh_planar(sldata, vedata); - DRW_stats_group_end(); - - /* Refresh shadows */ - DRW_stats_group_start("Shadows"); - EEVEE_draw_shadows(sldata, vedata, stl->effects->taa_view); - DRW_stats_group_end(); - /* Set ray type. */ sldata->common_data.ray_type = EEVEE_RAY_CAMERA; sldata->common_data.ray_depth = 0.0f; @@ -301,9 +293,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_view_set_active(NULL); - } + DRW_view_set_active(NULL); } /* Tonemapping and transfer result to default framebuffer. */ -- cgit v1.2.3