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>2022-08-04 23:30:09 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-08-05 15:45:09 +0300
commit72cdb0ed2d2cc4eebe9c756d2a87e2513b6bf1db (patch)
treeaf86ee2596082365bd048ec86f041307b8b59799 /source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc
parent897aa777c53439d67401b4ae3d567394a80f8be7 (diff)
EEVEE-Next: Depth Of Field: Improve image stability
This adds anti-flicker pass to the slight focus region by using the temporaly stable output from stabilize pass. This also fixes the bilateral weight factor which was reversed.
Diffstat (limited to 'source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc')
-rw-r--r--source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc b/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc
index e3db4a7f0ef..713fcf77dc8 100644
--- a/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc
@@ -470,6 +470,7 @@ void DepthOfField::resolve_pass_sync()
DRW_shgroup_uniform_block(grp, "dof_buf", data_);
DRW_shgroup_uniform_texture_ref_ex(grp, "depth_tx", &render_buffers.depth_tx, no_filter);
DRW_shgroup_uniform_texture_ref_ex(grp, "color_tx", &input_color_tx_, no_filter);
+ DRW_shgroup_uniform_texture_ref_ex(grp, "stable_color_tx", &resolve_stable_color_tx_, no_filter);
DRW_shgroup_uniform_texture_ref_ex(grp, "color_bg_tx", &color_bg_tx_.current(), with_filter);
DRW_shgroup_uniform_texture_ref_ex(grp, "color_fg_tx", &color_fg_tx_.current(), with_filter);
DRW_shgroup_uniform_image_ref(grp, "in_tiles_fg_img", &tiles_fg_tx_.current());
@@ -593,7 +594,7 @@ void DepthOfField::render(GPUTexture **input_tx,
}
{
setup_color_tx_.acquire(half_res, GPU_RGBA16F);
- setup_coc_tx_.acquire(half_res, GPU_RG16F);
+ setup_coc_tx_.acquire(half_res, GPU_R16F);
DRW_draw_pass(setup_ps_);
}
@@ -741,6 +742,8 @@ void DepthOfField::render(GPUTexture **input_tx,
{
DRW_stats_group_start("Resolve");
+ resolve_stable_color_tx_ = dof_buffer.stabilize_history_tx_;
+
DRW_draw_pass(resolve_ps_);
color_bg_tx_.current().release();