docs(site): the road fans past the sidewalk where the centreline curves
Found the mechanism behind the 2 m disagreement. street_mesh.py builds the road across -10.5..+10.5 m and the north sidewalk +10.5..+15.8 m, so along the straight the two bands meet exactly at the gutter. The strips are generated along a curved centreline, and the fan-out at the bend pushes the road's outer edge to -13.8 m while the sidewalk occupies -17.3..-11.8 m - a 2 m overlap where the road surface is 366 cm and the sidewalk 158 cm. That is the surface a downward trace at the player's Y kept finding, and the reason the scene read as the road hovering above the pavement. The fix is a clamp in strip() so a row's outer offset cannot pass the nominal gutter, or trimming the road's ends - one function, then re-export, re-import and the 14 s probe confirms it. Recorded in MEMORY.md and TODO.md. The demo reads correctly meanwhile because both objects stand on the sidewalk.
This commit is contained in:
1 parent
4f9e92d975
commit
4132dc77e3
2 files changed
+11
-2
No files matched your search
@@ -573,3 +573,10 @@ 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.
|
||||
|
||||
## 2026-11-09 — Why the road appears 2 m above the sidewalk at the same XY
|
||||
|
||||
- `street_mesh.py` builds the road across **SOUTH_GUTTER -10.5 .. NORTH_GUTTER +10.5 m** and the north sidewalk **+10.5 .. +15.8 m**, so on the straight the two bands meet exactly at the gutter.
|
||||
- The strips are generated along a **curved** centreline (`strip()` places vertices along each row's normal). Where the centreline bends, the fan-out pushes the road's outer edge past its nominal band: the imported road's Y spans **-13.8 .. +10.5 m** while the sidewalk occupies **-17.3 .. -11.8 m**, so they overlap by about 2 m near the west end.
|
||||
- In that overlap the road surface is at **366 cm** and the sidewalk at **158 cm** - which is why a trace at the player's Y kept finding the road, and why the scene read as the road floating above the pavement.
|
||||
- **Fix belongs in the strip builder:** clamp each row's outer offsets to the nominal gutter so the road cannot fan past the sidewalk, or shorten the road strip at the ends. Both are one-function changes in `strip()` / `main()`; the demo currently reads correctly because the player and car stand on the sidewalk.
|
||||
Reference in new issue
Block a user