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>2018-10-31 02:45:57 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-10-31 02:46:08 +0300
commit4e23c69bfa6d835e270cb1098c03b3adfb4c9d9c (patch)
treeee74c3bdf6b5de5a257cbc8b85d265aaeef43227 /source/blender/draw/engines/workbench/workbench_forward.c
parentd86e77ac16203e68d834d02c05221fc83674a1fa (diff)
Workbench: Attenuate dithering effect when using viewport render
Quick hack to get rid of most of the noise when doing a viewport render in xray or wireframe mode.
Diffstat (limited to 'source/blender/draw/engines/workbench/workbench_forward.c')
-rw-r--r--source/blender/draw/engines/workbench/workbench_forward.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/blender/draw/engines/workbench/workbench_forward.c b/source/blender/draw/engines/workbench/workbench_forward.c
index bd9dbd5ae17..d8de253c8eb 100644
--- a/source/blender/draw/engines/workbench/workbench_forward.c
+++ b/source/blender/draw/engines/workbench/workbench_forward.c
@@ -363,8 +363,14 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
/* Checker Depth */
{
+ static float noise_offset = 0.0f;
float blend_threshold = 0.0f;
+ if (DRW_state_is_image_render()) {
+ /* TODO: Should be based on the number of samples used for render. */
+ noise_offset = fmodf(noise_offset + 1.0f/8.0f, 1.0f);
+ }
+
if (wpd->shading.flag & XRAY_FLAG(wpd)) {
blend_threshold = 0.75f - XRAY_ALPHA(wpd) * 0.5f;
}
@@ -379,6 +385,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
grp = DRW_shgroup_create(e_data.checker_depth_sh, psl->checker_depth_pass);
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
DRW_shgroup_uniform_float_copy(grp, "threshold", blend_threshold);
+ DRW_shgroup_uniform_float_copy(grp, "offset", noise_offset);
}
}