From 240ca09c6a604a82a10a9eef424c08f4b1a0fa0e Mon Sep 17 00:00:00 2001 From: vicrodh <103399283+vicrodh@users.noreply.github.com> Date: Sun, 1 Feb 2026 11:39:32 -0600 Subject: [PATCH] fix(immersive): sample 90-100% of image for complete color representation Rely on extreme blur to destroy details, not cropping. This ensures all dominant colors (like blue sky) are captured. --- src/lib/components/immersive/ImmersiveBackground.svelte | 4 ++-- src/lib/immersive/utils/texture-loader.ts | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/components/immersive/ImmersiveBackground.svelte b/src/lib/components/immersive/ImmersiveBackground.svelte index 1ed220234..6ec4a7e45 100644 --- a/src/lib/components/immersive/ImmersiveBackground.svelte +++ b/src/lib/components/immersive/ImmersiveBackground.svelte @@ -99,8 +99,8 @@ const cropCtx = cropCanvas.getContext('2d'); if (!cropCtx) { isLoading = false; return; } - // Zoom factor: 1.1x to 1.6x (takes 62%-90% of image for more relevant colors) - const zoomFactor = 1.1 + rand() * 0.5; + // Zoom factor: 1.0x to 1.1x (takes 90%-100% for ALL colors) + const zoomFactor = 1.0 + rand() * 0.1; const sourceSize = Math.min(img.width, img.height) / zoomFactor; const maxOffset = Math.min(img.width, img.height) - sourceSize; diff --git a/src/lib/immersive/utils/texture-loader.ts b/src/lib/immersive/utils/texture-loader.ts index a2312bdf6..7ed47271c 100644 --- a/src/lib/immersive/utils/texture-loader.ts +++ b/src/lib/immersive/utils/texture-loader.ts @@ -60,8 +60,9 @@ function extractRandomCrop( const rand = seededRandom(seed); - // Zoom factor: 1.1x to 1.6x (we take 62%-90% of the image for more relevant colors) - const zoomFactor = 1.1 + rand() * 0.5; + // Zoom factor: 1.0x to 1.1x (we take 90%-100% of the image for ALL colors) + // Rely on extreme blur to destroy details, not cropping + const zoomFactor = 1.0 + rand() * 0.1; // Source region size (what portion of original image to take) const sourceSize = Math.min(img.width, img.height) / zoomFactor;