Implement rebuildTerrainMeshes method
This commit is contained in:
@@ -1910,6 +1910,39 @@ export class RuntimeHost {
|
|||||||
this.applyShadowState();
|
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(
|
private createFogMaterialSet(
|
||||||
brush: RuntimeBoxBrushInstance,
|
brush: RuntimeBoxBrushInstance,
|
||||||
volumeRenderPaths: {
|
volumeRenderPaths: {
|
||||||
|
|||||||
Reference in New Issue
Block a user