[Bf-blender-cvs] [e8912dd8445] blender2.8: Eevee: SSR: Do the SSR pass only for probes if there is no valid double buffer.

Clément Foucault noreply at git.blender.org
Mon Jul 24 15:55:51 CEST 2017


Commit: e8912dd84457ad71e605ea81258c948869f6945f
Author: Clément Foucault
Date:   Fri Jul 21 00:19:23 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBe8912dd84457ad71e605ea81258c948869f6945f

Eevee: SSR: Do the SSR pass only for probes if there is no valid double buffer.

This prevent black reflection when initializing SSR.

===================================================================

M	source/blender/draw/engines/eevee/eevee_effects.c

===================================================================

diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index e4c4cb5d790..9e221210d6e 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -929,16 +929,23 @@ void EEVEE_effects_do_ssr(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *veda
 	EEVEE_TextureList *txl = vedata->txl;
 	EEVEE_EffectsInfo *effects = stl->effects;
 
-	if ((effects->enabled_effects & EFFECT_SSR) != 0 && stl->g_data->valid_double_buffer) {
+	if ((effects->enabled_effects & EFFECT_SSR) != 0) {
 		DefaultTextureList *dtxl = DRW_viewport_texture_list_get();
 
-		EEVEE_downsample_buffer(vedata, fbl->minmaxz_fb, txl->color_double_buffer, 5);
+		if (stl->g_data->valid_double_buffer) {
+			EEVEE_downsample_buffer(vedata, fbl->minmaxz_fb, txl->color_double_buffer, 9);
 
-		/* Raytrace at halfres. */
-		e_data.depth_src = dtxl->depth;
-		// e_data.depth_src = stl->g_data->minmaxz;
-		DRW_framebuffer_bind(fbl->screen_tracing_fb);
-		DRW_draw_pass(psl->ssr_raytrace);
+			/* Raytrace at halfres. */
+			e_data.depth_src = dtxl->depth;
+			// e_data.depth_src = stl->g_data->minmaxz;
+			DRW_framebuffer_bind(fbl->screen_tracing_fb);
+			DRW_draw_pass(psl->ssr_raytrace);
+		}
+		else {
+			float clear_col[4] = {-1.0f, -1.0f, -1.0f, -1.0f};
+			DRW_framebuffer_bind(fbl->screen_tracing_fb);
+			DRW_framebuffer_clear(true, false, false, clear_col, 0.0f);
+		}
 
 		/* Resolve at fullres */
 		e_data.depth_src = dtxl->depth;




More information about the Bf-blender-cvs mailing list