From 9da60eb4e183bcd6cb7fb2762400c17894471883 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 18 Apr 2026 19:54:22 +0200 Subject: [PATCH] Implement rebuildTerrainMeshes method --- src/runtime-three/runtime-host.ts | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/runtime-three/runtime-host.ts b/src/runtime-three/runtime-host.ts index d10b426e..4c0ef6c0 100644 --- a/src/runtime-three/runtime-host.ts +++ b/src/runtime-three/runtime-host.ts @@ -1910,6 +1910,39 @@ export class RuntimeHost { this.applyShadowState(); } + private rebuildTerrainMeshes(terrains: RuntimeTerrain[]) { + this.clearTerrainMeshes(); + + for (const terrain of terrains) { + const geometry = buildTerrainDerivedMeshData({ + ...terrain, + kind: "terrain", + enabled: true + }).geometry; + const mesh = new Mesh( + geometry, + new MeshStandardMaterial({ + color: 0x708b57, + roughness: 0.98, + metalness: 0 + }) + ); + + mesh.position.set( + terrain.position.x, + terrain.position.y, + terrain.position.z + ); + mesh.visible = terrain.visible; + mesh.castShadow = false; + mesh.receiveShadow = true; + this.terrainGroup.add(mesh); + this.terrainMeshes.set(terrain.id, mesh); + } + + this.applyShadowState(); + } + private createFogMaterialSet( brush: RuntimeBoxBrushInstance, volumeRenderPaths: {