From 295191a7508194da0e74c5d63b0f2bd5f4a65b54 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Wed, 29 Apr 2026 23:00:56 +0200 Subject: [PATCH] Refactor terrain material assignment to update all meshes in render objects --- src/viewport-three/viewport-host.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/viewport-three/viewport-host.ts b/src/viewport-three/viewport-host.ts index c6f6d265..bf1a5d3a 100644 --- a/src/viewport-three/viewport-host.ts +++ b/src/viewport-three/viewport-host.ts @@ -8961,9 +8961,18 @@ export class ViewportHost { } const displayedTerrain = this.getDisplayedTerrainState(terrainId) ?? terrain; - const previousMaterial = renderObjects.mesh.material; - renderObjects.mesh.material = this.createTerrainMaterial(displayedTerrain); + const previousMaterial = renderObjects.material; + const nextMaterial = this.createTerrainMaterial(displayedTerrain); + + for (const chunk of renderObjects.chunks) { + for (const mesh of chunk.levels) { + mesh.material = nextMaterial; + } + } + + renderObjects.material = nextMaterial; previousMaterial.dispose(); + this.updateTerrainLodVisibility(); } private getDisplayedTerrainState(terrainId: string): Terrain | null {