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;