[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