From b39d9559bbbf08d2ccb3e7038cbe6d839fc5821f Mon Sep 17 00:00:00 2001 From: 3dtours Date: Fri, 2 Oct 2026 18:15:21 +0700 Subject: [PATCH] fix(raw): refine RAW highlight clipping threshold to preserve sunset sun color without white dome clipping --- docker/frontend/public/sw.js | 2 +- docker/frontend/scripts/raw-develop-check.mjs | 2 +- docker/frontend/src/engine/rawDevelop.ts | 2 +- docker/recipescam-images.tar.gz.sha256 | 2 +- docker/recipescam-web-frontend-acbb2bb-tone.tar.gz.sha256 | 2 +- docker/recipescam-web-frontend-acbb2bb.tar.gz.sha256 | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docker/frontend/public/sw.js b/docker/frontend/public/sw.js index 4867e71..11aba48 100644 --- a/docker/frontend/public/sw.js +++ b/docker/frontend/public/sw.js @@ -10,7 +10,7 @@ // hashed bundle with it, which the STATIC rule below then served cache-first // forever. Every navigation here now goes past the browser's own cache, so the // build a visitor gets is the one the server has. -const VERSION = 'recipescam-v8'; +const VERSION = 'recipescam-v9'; // nginx answers all three with the same index.html (SPA fallback), so they are one // document under three keys: an offline navigation finds it whichever key it asks. diff --git a/docker/frontend/scripts/raw-develop-check.mjs b/docker/frontend/scripts/raw-develop-check.mjs index 364da69..2b150eb 100644 --- a/docker/frontend/scripts/raw-develop-check.mjs +++ b/docker/frontend/scripts/raw-develop-check.mjs @@ -38,7 +38,7 @@ assert.match(code, /float3 lin = n \* mul\.rgb;/); // with both, mean |dL| 21.5 against 11.1. assert.match( code, - /float hi = max\(max\(n\.r, n\.g\), n\.b\);\s*hi = max\(hi, max\(max\(lin\.r, lin\.g\), lin\.b\)\);\s*rgb = mix\(rgb, float3\(mx\), smoothstep\(0\.95, 1\.0, hi\)\);/ + /float hi = max\(max\(n\.r, n\.g\), n\.b\);\s*hi = max\(hi, max\(max\(lin\.r, lin\.g\), lin\.b\)\);\s*rgb = mix\(rgb, float3\(mx\), smoothstep\(0\.99, 1\.02, hi\)\);/ ); // The inverse is built on the CPU side and has to be the first uniform of the diff --git a/docker/frontend/src/engine/rawDevelop.ts b/docker/frontend/src/engine/rawDevelop.ts index 4906803..b3741cb 100644 --- a/docker/frontend/src/engine/rawDevelop.ts +++ b/docker/frontend/src/engine/rawDevelop.ts @@ -145,7 +145,7 @@ half4 main(float2 pos) { // The matrix was fitted luma-preserving, so mx is the value to hold. float hi = max(max(n.r, n.g), n.b); hi = max(hi, max(max(lin.r, lin.g), lin.b)); - rgb = mix(rgb, float3(mx), smoothstep(0.95, 1.0, hi)); + rgb = mix(rgb, float3(mx), smoothstep(0.99, 1.02, hi)); // The overflow used to fade towards white — mix(rgb / mx, 1, 1 - 1 / mx) — // which put every pixel of a blown sky on exactly 1.0 and threw the two stops // the sensor held above white away with it: LIGHT's HIGHLIGHT row then had a diff --git a/docker/recipescam-images.tar.gz.sha256 b/docker/recipescam-images.tar.gz.sha256 index ab4d858..a7af53e 100644 --- a/docker/recipescam-images.tar.gz.sha256 +++ b/docker/recipescam-images.tar.gz.sha256 @@ -1 +1 @@ -9c251cad940285b218778c7f4867da6f821e3c164b6b316b289ec43dff73ffb4 recipescam-images.tar.gz +539638defc4b824c15c9065d0d908436222608a9e689c7a6cbb0a7bdbc5b2203 recipescam-images.tar.gz diff --git a/docker/recipescam-web-frontend-acbb2bb-tone.tar.gz.sha256 b/docker/recipescam-web-frontend-acbb2bb-tone.tar.gz.sha256 index d1e3fd8..929f006 100644 --- a/docker/recipescam-web-frontend-acbb2bb-tone.tar.gz.sha256 +++ b/docker/recipescam-web-frontend-acbb2bb-tone.tar.gz.sha256 @@ -1 +1 @@ -508bfe9a0a508118bb1b5d2c78d42443b59abe92509762c62914037f02eb2b73 recipescam-web-frontend-acbb2bb-tone.tar.gz +e723f24c28a0aead582cdf9ef188fdcada49182b924151299cca474016c55140 recipescam-web-frontend-acbb2bb-tone.tar.gz diff --git a/docker/recipescam-web-frontend-acbb2bb.tar.gz.sha256 b/docker/recipescam-web-frontend-acbb2bb.tar.gz.sha256 index 0c97ee9..7651787 100644 --- a/docker/recipescam-web-frontend-acbb2bb.tar.gz.sha256 +++ b/docker/recipescam-web-frontend-acbb2bb.tar.gz.sha256 @@ -1 +1 @@ -2794e19ba571f4ad4f541ed60ee7f5daf47ab786ca38367515af2a7709063225 recipescam-web-frontend-acbb2bb.tar.gz +ec5d93214d45e8cec86514356e13f86547498ae692734a80a651aec2b1e32a64 recipescam-web-frontend-acbb2bb.tar.gz