auto-git:

[change] src/commands/apply-terrain-brush-patch-command.ts
 [change] src/core/terrain-brush.ts
 [change] src/document/migrate-scene-document.ts
 [change] src/document/scene-document.ts
 [change] src/geometry/terrain-brush.ts
 [change] src/geometry/terrain-mesh.ts
This commit is contained in:
2026-05-02 11:24:29 +02:00
parent 47defd9e03
commit e9adf9f37e
6 changed files with 166 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ import { BufferAttribute, BufferGeometry } from "three";
import type { Vec3 } from "../core/vector";
import {
getTerrainFoliageMask,
getTerrainFoliageBlockerMaskValueAtSample,
getTerrainFoliageMaskValueAtSample,
getTerrainHeightAtSample,
getTerrainSampleLayerWeights,
@@ -47,6 +48,7 @@ const TERRAIN_LOD_HYSTERESIS_RATIO = 0.16;
interface TerrainMeshBuildOptions {
foliageMaskLayerId?: string | null;
foliageBlockerMask?: boolean;
}
export interface TerrainLodLevelMeshData {
@@ -225,13 +227,19 @@ export function buildTerrainDerivedMeshData(
}
layerWeightOffset += TERRAIN_LAYER_COUNT;
foliageMaskWeights[foliageMaskWeightOffset] =
foliageMask === null
? 0
: getTerrainFoliageMaskValueAtSample(
foliageMask,
options.foliageBlockerMask === true
? getTerrainFoliageBlockerMaskValueAtSample(
terrain.foliageBlockerMask,
sampleX,
sampleZ
);
)
: foliageMask === null
? 0
: getTerrainFoliageMaskValueAtSample(
foliageMask,
sampleX,
sampleZ
);
foliageMaskWeightOffset += 1;
}
}
@@ -399,9 +407,15 @@ function pushTerrainLodVertex(
? null
: getTerrainFoliageMask(terrain, options.foliageMaskLayerId);
foliageMaskWeights.push(
foliageMask === null
? 0
: getTerrainFoliageMaskValueAtSample(foliageMask, sampleX, sampleZ)
options.foliageBlockerMask === true
? getTerrainFoliageBlockerMaskValueAtSample(
terrain.foliageBlockerMask,
sampleX,
sampleZ
)
: foliageMask === null
? 0
: getTerrainFoliageMaskValueAtSample(foliageMask, sampleX, sampleZ)
);
}