From 1ed54677fdf9bcbc85e708231e7e20bd7099d225 Mon Sep 17 00:00:00 2001 From: johannes hanika Date: Fri, 2 Feb 2024 20:05:31 +0100 Subject: [PATCH] blend: fix over/mask inversion --- bin/data/presets/burn-guided.pst | 2 +- bin/data/presets/burn.pst | 2 +- bin/data/presets/dodge-guided.pst | 2 +- bin/data/presets/dodge.pst | 2 +- src/pipe/modules/blend/main.comp | 4 ++-- src/pipe/modules/shared/guided2f.comp | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bin/data/presets/burn-guided.pst b/bin/data/presets/burn-guided.pst index fdb85e766..6f0e68c01 100644 --- a/bin/data/presets/burn-guided.pst +++ b/bin/data/presets/burn-guided.pst @@ -20,7 +20,7 @@ connect:blend:burn:output:blend:dodge:back connect:blend:dodge:output:colour:01:input param:blend:burn:opacity:1 param:blend:burn:mode:0 -param:blend:burn:mask:2 +param:blend:burn:mask:1 param:exposure:burn:exposure:2 param:draw:burn:opacity:5 param:draw:burn:hardness:1 diff --git a/bin/data/presets/burn.pst b/bin/data/presets/burn.pst index 44c7d65f5..5e8b186fd 100644 --- a/bin/data/presets/burn.pst +++ b/bin/data/presets/burn.pst @@ -17,5 +17,5 @@ connect:blend:burn:output:blend:dodge:back connect:blend:dodge:output:colour:01:input param:blend:burn:opacity:1 param:blend:burn:mode:0 -param:blend:burn:mask:2 +param:blend:burn:mask:1 param:exposure:burn:exposure:2 diff --git a/bin/data/presets/dodge-guided.pst b/bin/data/presets/dodge-guided.pst index f34fe9d3c..857a2870a 100644 --- a/bin/data/presets/dodge-guided.pst +++ b/bin/data/presets/dodge-guided.pst @@ -20,7 +20,7 @@ connect:blend:dodge:output:blend:burn:back connect:blend:burn:output:colour:01:input param:blend:dodge:opacity:1 param:blend:dodge:mode:0 -param:blend:dodge:mask:2 +param:blend:dodge:mask:1 param:exposure:dodge:exposure:-2 param:draw:dodge:opacity:5 param:draw:dodge:hardness:1 diff --git a/bin/data/presets/dodge.pst b/bin/data/presets/dodge.pst index 4092ef51a..7d3142d37 100644 --- a/bin/data/presets/dodge.pst +++ b/bin/data/presets/dodge.pst @@ -17,5 +17,5 @@ connect:blend:dodge:output:blend:burn:back connect:blend:burn:output:colour:01:input param:blend:dodge:opacity:1 param:blend:dodge:mode:0 -param:blend:dodge:mask:2 +param:blend:dodge:mask:1 param:exposure:dodge:exposure:-2 diff --git a/src/pipe/modules/blend/main.comp b/src/pipe/modules/blend/main.comp index 5ecb1ec14..b37b545d3 100644 --- a/src/pipe/modules/blend/main.comp +++ b/src/pipe/modules/blend/main.comp @@ -49,12 +49,12 @@ main() if(params.mask == 1) { float mask = texture(img_mask, tc).r; - t = clamp(params.opacity*(1.0-mask), 0, 1); + t = clamp(params.opacity*mask, 0, 1); } else if(params.mask == 2) { float mask = texture(img_mask, tc).r; - t = clamp(params.opacity*mask, 0, 1); + t = clamp(params.opacity*(1.0-mask), 0, 1); } if(params.mode == 0) diff --git a/src/pipe/modules/shared/guided2f.comp b/src/pipe/modules/shared/guided2f.comp index 66c6d2d91..6d5071f87 100644 --- a/src/pipe/modules/shared/guided2f.comp +++ b/src/pipe/modules/shared/guided2f.comp @@ -34,8 +34,8 @@ main() const float var = mean_corr.z - mean_corr.x * mean_corr.x; const float cov = mean_corr.w - mean_corr.x * mean_corr.y; // XXX what's the valid range here? - // const float a = clamp(cov / (var + 100*cov*params.epsilon), 0.0f, 1.0f); - const float a = clamp(cov / (var + 1e-8 + params.epsilon*params.epsilon), -1e5, 1e5); // some safety margin to avoid infty etc + const float a = clamp(cov / (var + 1e-8 + params.epsilon*params.epsilon), -5.0f, 5.0f); + // const float a = clamp(cov / (var + 1e-8 + params.epsilon*params.epsilon), -1e5, 1e5); // some safety margin to avoid infty etc // const float a = cov / (var + params.epsilon*params.epsilon); const float b = mean_corr.y - a * mean_corr.x; imageStore(img_out, ipos, vec4(a, b, 0.0, 0.0));