175 lines
11 KiB
Markdown
175 lines
11 KiB
Markdown
# Screenshots — demo-map visual review
|
||
|
||
Rendered captures of **the demo map only** — what a player sees when the demo runs. Generated by [`Tools/render_screenshots.sh`](../Tools/render_screenshots.sh); the PNGs are committed so a reviewer sees exactly what the build rendered.
|
||
|
||
The review staging map (`/Game/Test/ReviewMap`) is not part of this set: it exists to hold the camera list and the hero detail rig, and it is not what ships.
|
||
|
||
## How to regenerate
|
||
|
||
```bash
|
||
Tools/render_screenshots.sh --verify
|
||
```
|
||
|
||
Stages the demo shot cameras, runs the game on `/Game/Hollywood/DemoMap`, copies the PNGs into `Screenshots/demo/` and then runs [`Tools/visual_loop.py`](../Tools/visual_loop.py) `--verify` to check that each shot still shows the content its expectation describes. About a minute.
|
||
|
||
## Status at a glance
|
||
|
||
Every shot is embedded below, in order, so the whole review happens in this file.
|
||
|
||
| # | Shot | Verified | Approved |
|
||
| --- | --- | --- | --- |
|
||
| 1 | [Spawn view](#1-spawn-view) | ☑ 2026-11-09 | ☑ 2026-11-09 |
|
||
| 2 | [Street level](#2-street-level) | ☑ 2026-11-09 | ☑ 2026-11-09 |
|
||
| 3 | [Crossing](#3-crossing) | ☑ 2026-11-09 | ☑ 2026-11-09 |
|
||
| 4 | [North buildings](#4-north-buildings) | ☑ 2026-11-09 | ☑ 2026-11-09 |
|
||
| 5 | [Retail frontage](#5-retail-frontage) | ☑ 2026-11-09 | ☑ 2026-11-09 |
|
||
| 6 | [Third-person body](#6-third-person-body) | ☑ 2026-11-09 | ☑ 2026-11-09 |
|
||
|
||
**Verified** is what `--verify` reports: the frame is not blank, is the right size, and has tonal range. **Approved** is the owner's verdict, recorded here. Each shot also has an **expectation** in [`Tools/visual_targets.json`](../Tools/visual_targets.json) describing the content it must show.
|
||
|
||
---
|
||
|
||
## 1. Spawn view
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-spawn-view.png`
|
||
- **View:** north sidewalk, 14 m back, level horizon
|
||
- **Expected content:** the whole south block — the neoclassical hero façade between its neighbouring buildings, both sidewalks and the road in the foreground
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
---
|
||
|
||
## 2. Street level
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-street-level.png`
|
||
- **View:** eye height, north side
|
||
- **Expected content:** the hero colonnade with the adjacent frontage buildings either side, shopfronts at pavement level
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
---
|
||
|
||
## 3. Crossing
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-crossing.png`
|
||
- **View:** from the north sidewalk along the crosswalk
|
||
- **Expected content:** the designated mid-block crossing (s=130 m, UE X −14956) — zebra bars on the asphalt, south frontage and colonnade behind
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
---
|
||
|
||
## 4. North buildings
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-north-buildings.png`
|
||
- **View:** across the Boulevard from the south side
|
||
- **Expected content:** the two north-side buildings (TCL Chinese Theatre, Madame Tussaud's), full height in frame
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
---
|
||
|
||
## 5. Retail frontage
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-retail-frontage.png`
|
||
- **View:** north sidewalk, level horizon, 68° lens
|
||
- **Expected content:** the retail run beside the hero — 6800 Lee Drug's bronze cornice, mural row and parapet next to 6806–6820's burgundy fascia, pilasters and window storey
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
Read this one against the reference photograph it was modelled from: `Art/reference/retail-neighbours/01-lee-drug-and-neighbor.jpg` (Gb321, CC BY-SA 4.0).
|
||
|
||
Known gaps in this first pass, recorded rather than hidden:
|
||
|
||
- **The parapet still reads as a blank band.** It is now two tiers with three deeper reveals, and the step is visible, but there is no profile or shadow line to break the wall — a moulded coping and a modelled reveal need the `0.9.0` façade system.
|
||
- **The mural row now reads** (framed plates standing 0.12–0.20 m off the wall), but **the lettering band does not**: it is a plate at 0.10 m and it disappears at 40 m. Wall lettering is a decal/texture problem, scoped in `0.9.0`; no amount of extra plate depth fixed it in the second pass.
|
||
- **The corner tower is a plain cylinder with two cap rings** — the stepped Deco profile in the photograph is richer than that.
|
||
- **The camera crops the east end** of Lee Drug at 68° from the north sidewalk.
|
||
- **6822 Budget is untouched** and still a bare blockout volume: no photograph of it exists.
|
||
|
||
---
|
||
|
||
## 6. Third-person body
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-third-person.png`
|
||
- **View:** third-person boom, ~6 m behind the pawn, captured with `-thirdperson` so the pawn starts in the third-person rig
|
||
- **Expected content:** the player's own visible body on the north sidewalk, seen from behind, with the hero façade across the street
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
What this shot is evidence for:
|
||
|
||
- The pawn carries a visible skeletal body with the warm skin material, and a spring-arm camera with collision testing. The **V** toggle swaps first and third person; the shipped default stays first person and the review passes `-thirdperson`.
|
||
- **The idle clip drives the body and the arms hang at the sides**, with the hands at the hips and the feet flat. Earlier captures of this shot showed a bind A-pose.
|
||
|
||
Still open, tracked in `TODO.md`:
|
||
|
||
- The fingers splay slightly, which is the bind's finger spread carried into the pose. That is the `0.2.2` pose-and-skin tuning pass, not this rig.
|
||
- **Camera collision is implemented but unproven:** the spawn has open space behind it, so no shot exercises the arm shortening.
|
||
|
||
---
|
||
|
||
## 7. Third-person front
|
||
|
||

|
||
|
||
- **File:** `demo/review-demo-third-person-front.png`
|
||
- **View:** from the road, ~6 m in front of the pawn, looking back north. The pawn spawns facing +Y, so this is its front
|
||
- **Expected content:** both arms hanging at the sides with the hands by the hips, face and chest visible
|
||
- **Verified:** ☑ 2026-11-09 · **Approved:** ☑ 2026-11-09
|
||
|
||
**Why the shot exists:** the third-person shot only ever shows the pawn's back, so a pose defect on the front — arms out, hands splayed, a face pointing the wrong way — was invisible in review. This angle is the check for it.
|
||
|
||
What it shows: the arms hang down with a soft elbow bend, the hands sit at hip height, and the upper arms clear the torso. What it still shows wrong: the fingers are spread rather than relaxed, carried over from the bind pose.
|
||
|
||
---
|
||
|
||
## The iteration loop (uncommitted)
|
||
|
||
`Tools/visual_loop.py` measures each capture against its reference photograph and turns the deltas into modelling actions for the Blender skill packs:
|
||
|
||
```bash
|
||
python3 Tools/visual_loop.py --compare --iteration 3 # writes Art/reference/iterations/3/
|
||
```
|
||
|
||
That directory is **gitignored**: iterations stay uncommitted until a shot is confirmed, and only confirmed shots are promoted into `Screenshots/demo/`. The feedback file names the affected skill (`blender-modeler`, `archviz`, `materials`, `lookdev`, `camera-cinematography`) so the next modelling pass has a starting point rather than an opinion.
|
||
|
||
Note the comparison is only meaningful when the shot and the reference frame the same subject — a wide block view measured against a tight façade crop will always report low edge similarity.
|
||
|
||
## Scene conventions
|
||
|
||
- **Demo map** (`/Game/Hollywood/DemoMap`): fixed daytime — sun pitch −62 / yaw 120 (intensity 4, warm), sky light 2.6, sky atmosphere, height fog, fixed exposure.
|
||
- **Cameras**: elevation shots sit at their target height (pitch 0, so verticals stay parallel) and use a 42–68° lens to fill the frame from across the street.
|
||
- **Materials**: every surface carries a look-developed material from `Tools/ue_build_demo_map.py` — noise-blended base colour, masonry coursing, and a generated texture set (`Tools/generate_facade_textures.py`) sampled world-aligned. Explicit roughness and specular per surface type.
|
||
|
||
## Known cosmetic issues
|
||
|
||
Every issue is tracked in `TODO.md` under the version that will fix it; an issue with no ticket is a bug in the plan, not a note.
|
||
|
||
| Issue | Where it is tracked | State |
|
||
| --- | --- | --- |
|
||
| Hero stone renders pale — the material is a procedural graph and a generated texture set, not a measured surface | `0.9.0` → measured material library | Open |
|
||
| Hero façade has no doors at street level left and right of the central bay, and the central-bay elements (columns, stairs, set-back entrance, door frames, signage) are not positioned as the photographs show | `0.9.0` → per-building models, hero façade | Open |
|
||
| Nothing may stand in front of the hero façade that blocks it — no awning, no temporary structure | `0.9.0` → per-building models, hero façade | Open |
|
||
| Retail parapet has no moulded profile, and wall lettering built as a plate does not read at 40 m | `0.9.0` → 6800 Lee Drug and 6806–6820, second pass | Open (moved out of `0.1.6`) |
|
||
| 6822 Budget is a bare blockout volume — no photograph exists to model it from | `0.9.0` → photography gap | Deferred (moved out of `0.1.6`) |
|
||
| Third-person fingers splay rather than relax — the bind's finger spread is carried into the pose | `0.2.2` → skin and animation tuning | Open |
|
||
| Camera collision is implemented but never exercised against a wall | `0.2.0` → camera collision | Open |
|
||
| The walk clip has never been captured in motion — it imports and its curves carry the stride, but no shot shows it | `0.2.0` → verify animation plays correctly | Open |
|
||
| Between kerb and building line the walkable surface is the terrain mesh, not a modelled pavement | `0.6.0` → model the pavement between kerb and building line | Open |
|
||
|
||
Accepted by the owner, not a defect:
|
||
|
||
- Banners hang on the column line rather than flush to the wall — that is how they hang in the photographs.
|
||
|
||
Resolved and removed from this list on 2026-11-09:
|
||
|
||
- "The El Capitan Theatre has no marquee or blade sign" — `Tools/ue_stage_theatre_trim.py` stages all six trim actors; verified in `/tmp/gigline/theatre-import.txt`.
|
||
- "Materials are not yet created in Blender or fully integrated" — contradicted by the scene conventions above: every surface carries a look-dev material built in `Tools/ue_build_demo_map.py`.
|