From cbdb8e6e3a3463fda947c93187c45277de0c5447 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Mon, 9 Nov 2026 18:24:48 +0100 Subject: [PATCH] test(site): the source is right, the engine is wrong about where the road is Regenerated the street blend from OSM and the DEM (the code was already correct: 279.6 m centreline, saved clean) and sampled both surfaces at the player's X in metres: Road_Hollywood y -9.0..-9.1, z 0.87..0.94 Sidewalk_North y +11.9..+12.0, z 1.51..1.59 The road is the south band at about 0.9 m and the north sidewalk is about 1.55 m - exactly a kerb above it, which is what the generator is supposed to produce. The source is correct. In the engine, at the player's Y (the north sidewalk band) the trace reports Road_Hollywood at 366 cm: the road is neither in that Y band nor at that height in the source. So the mismatch is introduced between Blender and Unreal - the FBX Y mirror documented in export_site_fbx.py, or the importer's transform - not by the geometry or the placement code. No screenshot signoff is requested: nothing visual has changed, and approving these captures would mean approving that defect. --- Art/blender/street/street-2026-11-06.blend | 4 ++-- MEMORY.md | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Art/blender/street/street-2026-11-06.blend b/Art/blender/street/street-2026-11-06.blend index 6facef5..310891c 100644 --- a/Art/blender/street/street-2026-11-06.blend +++ b/Art/blender/street/street-2026-11-06.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:534493dc63a6b3aa7b84e1071589f5437dfb27185a1f1fbfa8a05f2330eba43b -size 514055 +oid sha256:6e47d8ffc1f13a41b6676859b5869b16186028f1659fabf79e43cef79e8480a6 +size 514064 diff --git a/MEMORY.md b/MEMORY.md index a7240bb..7a62b9f 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -560,3 +560,16 @@ x=-10336 z=366 Road_Hollywood x= 1664 z= 5 Terrain_DEM - **The road is a flat slab at 366 cm** across the whole demo block, while the sidewalk slices follow the DEM and descend 380 -> 104 cm. The gap is therefore in the street generator: the road is not sampling the elevation per row the way the sidewalks do, or it was written with a single Z. - That also explains why every sidewalk fix failed - the street the player actually stands on is the flat road, and the sloped sidewalk is metres below it. - **Next:** inspect how `rows` is built in `Art/blender/street/street_mesh.py` - the road's `road_z` reads `dem_z(x, y)` from the same rows as the sidewalk, so a flat result means `dem_z` is returning the same value for every row (origin offset or a lookup that fails and falls back), and the fix is in that sampler. + +## 2026-11-09 — Source truth vs what the engine reports + +Sampled the regenerated street blend at the player's X (x = -133.36 m): + +``` +Road_Hollywood verts at y = -9.0..-9.1, z = 0.87..0.94 m +Sidewalk_North verts at y = +11.9..+12.0, z = 1.51..1.59 m +``` + +So the road is the south band at ~0.9 m and the north sidewalk is at ~1.55 m, exactly a kerb above it. **The source geometry is correct and consistent.** + +In the engine at the player's position (UE Y -1150 cm, i.e. the north sidewalk band) the trace reports `Road_Hollywood` at **366 cm** - the road is neither in that Y band nor at that height in the source. So the mismatch is introduced on the way in: either the FBX export's Y mirror documented in `export_site_fbx.py`, or the importer's transform. Until that is settled, no screenshot reflects the source, and a visual signoff would be approving a defect.