lighting: fixed daytime rig, real surface materials, dynamic lights

Completes "Fixed daytime lighting and basic ambience" for 0.1.0. All 14
screenshots approved by the owner.

Lighting rig (Tools/ue_build_demo_map.py):
- Sun pitch -50 / yaw 120, intensity 4, warm (255/245/230), atmosphere sun light
- Sky light 2.6 with real-time capture, sky atmosphere, height fog (density 0.008)
- Unbound post-process volume with fixed exposure (min == max brightness) so a
  shot cannot wash out or crush to black depending on how much sky it frames
- Dynamic-only: r.AllowStaticLighting=False plus MOVABLE lights and mesh
  components, so the editor's "LIGHTING NEEDS TO BE REBUILT" warning no longer
  fires and nothing needs baking

Bugs found and fixed on the way:
- Blender diffuse colours do not survive the FBX -> Unreal import: every site
  material arrived white and the terrain arrived with WorldGridMaterial, which
  is what actually made the scene look blown out. The demo builder now creates
  and assigns M_Asphalt, M_Concrete, M_Ground and M_RoadPaint.
- Only one of the three crossings reached the game: each zebra band was its own
  object, so Blender renamed the duplicates .001/.002 and exact-name site
  assembly skipped them. All bands are now one Crossing_Markings mesh.
- Demo cameras: street-level sat inside the facade body (rendering its unlit
  back face) and the crossing camera aimed at the s=36.6 crossing instead of
  the designated s=130.1 (UE X -14956).
- The terrain had no material and imported as a bright default grid.
- Cleared a committed Android File Server SecurityToken (plugin disabled and
  shipping-excluded; the value must stay empty).

Docs:
- Screenshots/README.md: one consolidated table for all 14 shots with map,
  camera view and description; all approved.
- MEMORY.md: records the material-import, exposure, light_color struct,
  band-naming, camera-bounds and lighting-build traps.
- TODO.md: lighting item marked done.

Squash of branch gameplay-lighting-0.1.0 (PR #3).
This commit is contained in:
zwitschi committed 2026-11-07 18:22:19 +01:00
1 parent 1dbe737b85
commit accf3a5306
38 files changed
+318 -126

No files matched your search

+36 -37
View File
@@ -17,46 +17,45 @@ camera list via `AGigLineShotActor`, captures each shot, copies the PNGs here
and exits — about a minute. The camera list lives in
`Tools/ue_build_review_map.py`; add new shots there, remove retired ones here.
> Naming: shots use their stable camera name (no index prefix), so adding or
> reordering cameras never renumbers files or orphans the old ones. Click an
> image for the full-size PNG.
## Shot list
All ☑ approved 2026-11-07.
| # | File | Preview | Map | View | What it shows |
| --- | --- | --- | --- | --- | --- |
| 1 | `review-overview.png` | [<img src="review-overview.png" alt="overview" width="180">](review-overview.png) | Review | 7 m up, NE | Whole review layout: character + both cubes on the floor |
| 2 | `review-character.png` | [<img src="review-character.png" alt="character" width="180">](review-character.png) | Review | eye height, south | MPFB mannequin, idle pose + warm skin; feet meet the plane |
| 3 | `review-scale-cubes.png` | [<img src="review-scale-cubes.png" alt="scale cubes" width="180">](review-scale-cubes.png) | Review | south | Floating vs grounded cube: cast vs contact shadow |
| 4 | `review-player-placement.png` | [<img src="review-player-placement.png" alt="player placement" width="180">](review-player-placement.png) | Review | spawn | The `AGigLineCharacter` pawn, capsule height and landing |
| 5 | `review-npc-prefab.png` | [<img src="review-npc-prefab.png" alt="npc prefab" width="180">](review-npc-prefab.png) | Review | mid, west | The `AGigLineNPCPerson` prefab: collision capsule + visible MPFB body, feet on Z 0 |
| 6 | `review-ground-contact.png` | [<img src="review-ground-contact.png" alt="ground contact" width="180">](review-ground-contact.png) | Review | knee height, feet | Floating/sinking character is obvious here |
| 7 | `review-shadow-compare.png` | [<img src="review-shadow-compare.png" alt="shadow compare" width="180">](review-shadow-compare.png) | Review | low angle | Detached (floating) vs touching (grounded) shadows |
| 8 | `review-hero-portals.png` | [<img src="review-hero-portals.png" alt="hero portals" width="180">](review-hero-portals.png) | Review | 8 m, eye height | Three genuine 1.2 m portal recesses with flights and plinth |
| 9 | `review-hero-facade-front.png` | [<img src="review-hero-facade-front.png" alt="hero facade front" width="180">](review-hero-facade-front.png) | Review | road side, straight-on | Hero façade elevation and column rhythm |
| 10 | `review-hero-facade-oblique.png` | [<img src="review-hero-facade-oblique.png" alt="hero facade oblique" width="180">](review-hero-facade-oblique.png) | Review | north-west | Body depth and column line standing proud of the mass |
| 11 | `demo/review-demo-spawn-view.png` | [<img src="demo/review-demo-spawn-view.png" alt="spawn view" width="180">](demo/review-demo-spawn-view.png) | Demo | spawn point | Spawn view from the north sidewalk: the hero façade across the road under fixed daytime light |
| 12 | `demo/review-demo-street-level.png` | [<img src="demo/review-demo-street-level.png" alt="street level" width="180">](demo/review-demo-street-level.png) | Demo | eye height, north side | The façade colonnade and columns, sunlit with cast shadows |
| 13 | `demo/review-demo-crossing.png` | [<img src="demo/review-demo-crossing.png" alt="crossing" width="180">](demo/review-demo-crossing.png) | Demo | along the crosswalk | The designated mid-block crossing at s=130 m (UE X -14956): three continental zebra bars on the asphalt, kerbs flushed to ramps |
| 14 | `demo/review-demo-north-buildings.png` | [<img src="demo/review-demo-north-buildings.png" alt="north buildings" width="180">](demo/review-demo-north-buildings.png) | Demo | across the Blvd | North-side background buildings (TCL, Tussaud's), lit against the sky |
## Scene conventions
- **Floor**: 160 m square, top face at Z 0. The character measures Z 0..83 cm.
- **Review map** (`/Game/Test/ReviewMap`): 160 m floor, top face at Z 0; the
character measures Z 0..83 cm. One warm key light plus sky fill.
- **Cubes**: `Cube_ScaleTest_A` rests on the floor, `Cube_ScaleTest_B` floats at
Z 2 m; both are exactly 1 m — the scale reference.
- **Lighting**: one warm key light plus sky fill (review rig, not the `0.1.0`
daytime look). Beyond the floor is open: the horizon is a black band.
## Review-map shots
All ☑ approved 2026-11-07 (re-rendered with the character and cubes restored;
user visual check passed).
> Naming: shots use their stable `Tools/ue_build_review_map.py` camera name (no
> index prefix), so adding or reordering cameras never renumbers files or
> orphans the old ones. Click an image for the full-size PNG.
| File | Preview | View | What it shows |
| --- | --- | --- | --- |
| `review-overview.png` | [<img src="review-overview.png" alt="overview" width="200">](review-overview.png) | 7 m up, NE | Whole review layout: character + both cubes on the floor |
| `review-character.png` | [<img src="review-character.png" alt="character" width="200">](review-character.png) | eye height, south | MPFB mannequin, idle pose + warm skin; feet meet the plane |
| `review-scale-cubes.png` | [<img src="review-scale-cubes.png" alt="scale cubes" width="200">](review-scale-cubes.png) | south | Floating vs grounded cube: cast vs contact shadow |
| `review-player-placement.png` | [<img src="review-player-placement.png" alt="player placement" width="200">](review-player-placement.png) | spawn | The `AGigLineCharacter` pawn, capsule height and landing |
| `review-npc-prefab.png` | [<img src="review-npc-prefab.png" alt="npc prefab" width="200">](review-npc-prefab.png) | mid, west | The `AGigLineNPCPerson` prefab: collision capsule + visible MPFB body, feet on Z 0 (**new 2026-11-07**) |
| `review-ground-contact.png` | [<img src="review-ground-contact.png" alt="ground contact" width="200">](review-ground-contact.png) | knee height, feet | Floating/sinking character is obvious here |
| `review-shadow-compare.png` | [<img src="review-shadow-compare.png" alt="shadow compare" width="200">](review-shadow-compare.png) | low angle | Detached (floating) vs touching (grounded) shadows |
| `review-hero-portals.png` | [<img src="review-hero-portals.png" alt="hero portals" width="200">](review-hero-portals.png) | 8 m, eye height | Three genuine 1.2 m portal recesses with flights and plinth |
| `review-hero-facade-front.png` | [<img src="review-hero-facade-front.png" alt="hero facade front" width="200">](review-hero-facade-front.png) | road side, straight-on | Hero façade elevation and column rhythm |
| `review-hero-facade-oblique.png` | [<img src="review-hero-facade-oblique.png" alt="hero facade oblique" width="200">](review-hero-facade-oblique.png) | north-west | Body depth and column line standing proud of the mass |
## Demo-map views
Rendered from `/Game/Hollywood/DemoMap`, the walkable level. Click an image for the full-size PNG.
| File | Preview | Approval | What it shows |
| --- | --- | --- | --- |
| `demo/review-demo-spawn-view.png` | [<img src="demo/review-demo-spawn-view.png" alt="spawn view" width="200">](demo/review-demo-spawn-view.png) | ☑ | Spawn view: north sidewalk, the hero façade across the road |
| `demo/review-demo-street-level.png` | [<img src="demo/review-demo-street-level.png" alt="street level" width="200">](demo/review-demo-street-level.png) | ☑ | Street level: portals, flights, banners, colonnade |
| `demo/review-demo-crossing.png` | [<img src="demo/review-demo-crossing.png" alt="crossing" width="200">](demo/review-demo-crossing.png) | ☑ | The designated mid-block crossing (s=130 m): zebra markings on the road, kerbs flushed to ramps. Camera on the north sidewalk looking south-west. Note: the road renders near-black in shadow — the fixed-daytime-lighting item, not the markings |
| `demo/review-demo-north-buildings.png` | [<img src="demo/review-demo-north-buildings.png" alt="north buildings" width="200">](demo/review-demo-north-buildings.png) | ☑ | North-side background buildings (TCL, Tussaud's) across the Blvd |
- **Demo map** (`/Game/Hollywood/DemoMap`): fixed daytime — sun at pitch −50 /
yaw 120 (intensity 4, warm), sky light 2.6, sky atmosphere, height fog, fixed
exposure. Surface colours are assigned explicitly in
`Tools/ue_build_demo_map.py` (`M_Asphalt`, `M_Concrete`, `M_Ground`,
`M_RoadPaint`) because Blender's flat diffuse colours do not survive the
FBX → Unreal import.
- **Lighting is dynamic-only** (`r.AllowStaticLighting=False`, all lights
Movable), so no lighting build is ever required.
## What to look for
@@ -73,4 +72,4 @@ Rendered from `/Game/Hollywood/DemoMap`, the walkable level. Click an image for
- Banners and window panels float detached from the colonnade wall (next
modelling pass).
- Between kerb and building line, the walkable surface is the terrain mesh, not
a modelled pavement.
a modelled pavement.