Improve summit terrain, mobile HUD and multiplayer night equipment

Add the Blender flashlight asset with a 600 lm beam and reduced bloom, shared-mode self badge, and compact phone controls. Relocate the summit marker, blend terrain seams, widen walking routes, and align local server configuration on port 2027.
This commit is contained in:
2026-10-31 23:14:44 +09:00
parent 18dfb63350
commit eb49ea4b84
40 changed files with 402 additions and 64 deletions
+14 -2
View File
@@ -45,8 +45,20 @@ export function applySummitTerrain(geometry: BufferGeometry, meta: TerrainMetada
const fade = 1 - t * t * (3 - 2 * t);
positions.setY(i, positions.getY(i) + weighted / weights * fade);
const authored = authoredHeight(x - start.x, z - start.z);
if (authored !== undefined) positions.setY(i, authored - meta.observerSurfaceElevation
- (x * x + z * z) / (2 * TERRAIN.earthRadiusMeters));
if (authored !== undefined) {
// Fade the sculpt into the corrected terrain before its rectangular edge.
// This also suppresses discontinuities in the exported outermost samples.
const localX = x - start.x, localZ = z - start.z;
const smooth = (distance: number) => {
const t = Math.min(1, Math.max(0, distance / SUMMIT_TERRAIN.plateauBlendMeters));
return t * t * (3 - 2 * t);
};
const blend = smooth(Math.min(localX - xs[0], xs.at(-1)! - localX))
* smooth(Math.min(localZ - zs[0], zs.at(-1)! - localZ));
const target = authored - meta.observerSurfaceElevation
- (x * x + z * z) / (2 * TERRAIN.earthRadiusMeters);
positions.setY(i, positions.getY(i) + (target - positions.getY(i)) * blend);
}
}
positions.needsUpdate = true;
geometry.computeVertexNormals();