From 368aeafed9073e556f903a96bd444eb03ebd0402 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 29 Apr 2026 23:49:09 +0200 Subject: [PATCH] Refine renderer pixel ratio calculation and implement terrain LOD hysteresis --- src/viewport-three/viewport-host.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index 4f4c2d4b..5e99516f 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -1014,7 +1014,7 @@ export class ViewportHost { this.boxCreatePreviewEdges.visible = false; this.scene.add(this.boxCreatePreviewMesh); this.scene.add(this.boxCreatePreviewEdges); - this.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2)); + this.renderer.setPixelRatio(getRendererPixelRatio()); this.renderer.setClearAlpha(0); this.environmentBlendCache = createRendererQuantizedEnvironmentBlendCache( this.renderer, @@ -6518,8 +6518,9 @@ export class ViewportHost { const selected = isTerrainSelected(this.currentSelection, terrainId); for (const chunk of renderObjects.chunks) { - const nextLevelIndex = resolveTerrainLodLevelIndex({ + const nextLevelIndex = resolveTerrainLodLevelIndexWithHysteresis({ levelCount: chunk.levelGeometries.length, + activeLevelIndex: chunk.activeLevelIndex, chunkDiagonal: chunk.diagonal, cameraPosition, chunkWorldCenter: chunk.worldCenter,