diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-08-04 23:30:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-08-05 15:45:09 +0300 |
commit | 72cdb0ed2d2cc4eebe9c756d2a87e2513b6bf1db (patch) | |
tree | af86ee2596082365bd048ec86f041307b8b59799 /source/blender/draw/engines/eevee_next/eevee_depth_of_field.cc | |
parent | 897aa777c53439d67401b4ae3d567394a80f8be7 (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.cc | 5 |
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(); |