Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2021-03-13 13:44:46 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-03-13 22:59:20 +0300
commit267a9e14f5a7cda16309937b5b8fba700f8c833b (patch)
treeaf7cb664c3c87dfd93565d2ce5679ce37775d006 /source/blender/draw/engines/eevee/eevee_screen_raytrace.c
parentb79f209041700acec9ace9c5091b6706a21b1e96 (diff)
EEVEE: ScreenSpaceReflections: Add back multi ray-hitpoint reuse
We now reuse 9 hitpoints from the neighboorhood using a blue noise sample distribution as mentionned in the reference presentation. Reusing more rays does however make some area a bit more blury. The resulting noise is quite lower compared to previous implementation which was only reusing 4 hits.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_screen_raytrace.c')
-rw-r--r--source/blender/draw/engines/eevee/eevee_screen_raytrace.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_screen_raytrace.c b/source/blender/draw/engines/eevee/eevee_screen_raytrace.c
index 75219b88e78..54f23073bd0 100644
--- a/source/blender/draw/engines/eevee/eevee_screen_raytrace.c
+++ b/source/blender/draw/engines/eevee/eevee_screen_raytrace.c
@@ -32,11 +32,6 @@
#include "GPU_texture.h"
#include "eevee_private.h"
-static struct {
- /* These are just references, not actually allocated */
- struct GPUTexture *depth_src;
-} e_data = {NULL}; /* Engine data */
-
int EEVEE_screen_raytrace_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
{
EEVEE_CommonUniformBuffer *common_data = &sldata->common_data;
@@ -186,7 +181,7 @@ void EEVEE_screen_raytrace_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *v
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
DRW_shgroup_uniform_block(grp, "renderpass_block", sldata->renderpass_ubo.combined);
- DRW_shgroup_uniform_int(grp, "neighborOffset", &effects->ssr_neighbor_ofs, 1);
+ DRW_shgroup_uniform_int(grp, "samplePoolOffset", &effects->taa_current_sample, 1);
DRW_shgroup_uniform_texture_ref(grp, "horizonBuffer", &effects->gtao_horizons);
DRW_shgroup_call_procedural_triangles(grp, NULL, 1);
}
@@ -216,9 +211,6 @@ void EEVEE_reflection_compute(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *v
EEVEE_EffectsInfo *effects = stl->effects;
if (((effects->enabled_effects & EFFECT_SSR) != 0) && stl->g_data->valid_double_buffer) {
- DefaultTextureList *dtxl = DRW_viewport_texture_list_get();
- e_data.depth_src = dtxl->depth;
-
DRW_stats_group_start("SSR");
/* Raytrace. */