# Screenshots — visual review
Rendered in-game captures of the current project content, generated by [`Tools/render_screenshots.sh`](../Tools/render_screenshots.sh). The PNGs are committed alongside this README so a reviewer sees exactly what the build rendered.
## How to regenerate
```bash
Tools/render_screenshots.sh
```
Rebuilds `Game/GigLine/Content/Test/ReviewMap.umap` from current content, runs the game on it (and on the DemoMap for the walkable views), walks the fixed 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 shots ☑ approved 2026-11-07, including the block frontage pass that added the neighbouring buildings and corrected the hero and north-building placement.
| # | File | Preview | Map | View | What it shows |
| --- | --- | --- | --- | --- | --- |
| 1 | `review-overview.png` | [
](review-overview.png) | Review | 7 m up, NE | Whole review layout: character + both cubes on the floor |
| 2 | `review-character.png` | [
](review-character.png) | Review | eye height, south | MPFB mannequin, idle pose + warm skin; feet meet the plane |
| 3 | `review-scale-cubes.png` | [
](review-scale-cubes.png) | Review | south | Floating vs grounded cube: cast vs contact shadow |
| 4 | `review-player-placement.png` | [
](review-player-placement.png) | Review | spawn | The `AGigLineCharacter` pawn, capsule height and landing |
| 5 | `review-npc-prefab.png` | [
](review-npc-prefab.png) | Review | mid, west | The `AGigLineNPCPerson` prefab: collision capsule + visible MPFB body, feet on Z 0 |
| 6 | `review-ground-contact.png` | [
](review-ground-contact.png) | Review | knee height, feet | Floating/sinking character is obvious here |
| 7 | `review-shadow-compare.png` | [
](review-shadow-compare.png) | Review | low angle | Detached (floating) vs touching (grounded) shadows |
| 8 | `review-hero-portals.png` | [
](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` | [
](review-hero-facade-front.png) | Review | road side, straight-on | Hero façade elevation and column rhythm |
| 10 | `review-hero-facade-oblique.png` | [
](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` | [
](demo/review-demo-spawn-view.png) | Demo | north sidewalk | The whole block: hero façade between its neighbours, both sidewalks and the road |
| 12 | `demo/review-demo-street-level.png` | [
](demo/review-demo-street-level.png) | Demo | eye height, north side | The hero colonnade with the adjacent frontage buildings either side |
| 13 | `demo/review-demo-crossing.png` | [
](demo/review-demo-crossing.png) | Demo | along the crosswalk | The designated mid-block crossing at s=130 m (UE X -14956): three zebra bars on the asphalt, with the south frontage and the hero colonnade behind |
| 14 | `demo/review-demo-north-buildings.png` | [
](demo/review-demo-north-buildings.png) | Demo | across the Blvd | North-side buildings (TCL, Tussaud's) seen from the south side across the road |
## Scene conventions
- **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.
- **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.
- **Materials**: every exported surface carries a look-developed material built in `Tools/ue_build_demo_map.py` (`ensure_material`) because Blender's flat diffuse colours do not survive the FBX → Unreal import. Each has an explicit roughness and a subtle world-space noise blend between two shades: `M_Asphalt` (0.92), `M_Concrete` (0.88), `M_KerbConcrete` (0.85), `M_Ground` (0.98), `M_RoadPaint` (0.62), `M_FacadeStone` (0.72) and `M_Stucco` (0.86) for the north-side buildings.
- **Lighting is dynamic-only** (`r.AllowStaticLighting=False`, all lights Movable), so no lighting build is ever required.
- **Attribution overlay**: every shot carries the required ODbL credit in the bottom-left (`© OpenStreetMap contributors` / `Data © OpenStreetMap contributors, ODbL 1.0 — openstreetmap.org/copyright`), drawn by `AGigLineHUD`. Screenshots are requested with the UI shown so the obligation is visible in review.
## What to look for
- **Ground contact**: feet meet the plane with no gap and no shadow seam.
- **Scale**: everything checks against the 1 m cubes.
- **Façade rhythm**: six columns at 4.96 m across 25.75 m should read as the photographs in silhouette.
## Known cosmetic issues
- Floor speckle from the `Constant3Vector` wiring in `Tools/ue_build_review_map.py`.
- Hero façade renders pale — Blender flat colours with no normal/roughness, so it reads as untextured stone (the `0.1.4` façade patch, not a lighting bug).
- 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.