Drop the OpenStreetMap/ODbL attribution requirement, the Google imagery rule, and the related F-4 requirement, risk R-4, release check, and TODO items across AGENTS, PLAN, ROADMAP, README, setup, architecture sections, and manifests. OSM data is now documented as local private use only. Also normalize numbered-list indentation in the architecture docs.
56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
# Cross-cutting Concepts
|
||
|
||
## Coordinate system and scale
|
||
|
||
- **Source CRS**: EPSG:26911 (UTM zone 11N). Local origin recorded in `Geo/`.
|
||
|
||
- **Blender**: metres. East → +X, north → +Y (Blender convention).
|
||
|
||
- **Unreal**: centimetres. East → +X, north → **−Y** (confirmed from street mesh: `Sidewalk_North` Y −1912..−1053, `Sidewalk_South` Y +718..+1447).
|
||
|
||
- **Conversion**: every exporter calls the metre→centimetre function. Import presets (`ue_metric_v1`, `ue_character_v1`) are named and repeatable.
|
||
|
||
Rule: place a building only against a neighbour or street mesh, never in isolation.
|
||
|
||
## Collision model
|
||
|
||
- Site meshes (road, sidewalks, kerbs, crossing): `STATIC` mobility, `BlockAll` collision profile.
|
||
|
||
- Terrain: `STATIC`, `CTF_UseComplexAsSimple` (forced by `UGigLineAssetTools` at build time, saved on the asset — the flag lives on the `UStaticMesh`/`UBodySetup`, not the map).
|
||
|
||
- Buildings: `STATIC`, simple collision (convex hull from mesh).
|
||
|
||
- Rule: the collision flag must be saved on the asset. Saving only the `.umap` silently reverts it.
|
||
|
||
## Lighting
|
||
|
||
- Dynamic-only: `r.AllowStaticLighting=False`. All lights are `MOVABLE`.
|
||
|
||
- Fixed daytime rig: directional light (sun, −62° pitch), sky light, exponential height fog, post-process volume with fixed exposure.
|
||
|
||
- Rationale: avoids "LIGHTING NEEDS TO BE REBUILT" warnings; no bake step; the scene never changes time of day.
|
||
|
||
## Materials
|
||
|
||
- All materials authored in Unreal, not carried from Blender (FBX import loses diffuse colours).
|
||
|
||
- World-space-noise blend nodes for cheap procedural variation (asphalt grain, concrete speckle, stucco roughness).
|
||
|
||
- Instance parameters where tunable (e.g. wetness, ageing).
|
||
|
||
## Geographic data provenance
|
||
|
||
- OSM extract is layout data only — not authoritative for façade, height, or pavement detail.
|
||
|
||
- DEM from 3DEP 1 m; elevation verified against cross-sections in `Geo/verification/`.
|
||
|
||
- Reference photography (local, gitignored) drives manual façade work.
|
||
|
||
## QA harness
|
||
|
||
- `-qaselftest`: core ticker (not world timer) so pause cannot freeze the test that proves pause works.
|
||
|
||
- `GigLine SIM` / `GigLine GROUND`: TEMP diagnostic logging, to be removed before release tag.
|
||
|
||
- Screenshot approval: human must tick `Screenshots/README.md` before visual work is marked done.
|