docs(review): consolidate the two 0.1.4 review documents into one
Docs/qa/0.1.4-facade-qa.md contained the QA-gate detail (budgets, defect table, limitations) and Docs/reviews/0.1.4-review.md the signoff and images. One document now: short intro, the ticked signoff list, the four embedded captures, and a compact appendix holding the verified behaviour and placement, the defect table with root causes, and the limitations. All four image links verified; no other file referenced the removed document.
This commit is contained in:
1 parent
d4a115a987
commit
70d9cb4858
2 files changed
+40
-84
No files matched your search
@@ -1,81 +0,0 @@
|
||||
# QA review — `0.1.4` façade work
|
||||
|
||||
Checklist gate for the façade module kit, the replacement materials and the corrected blockout frame. Written per the `qa-review` skill: budgets, the screenshots that carry the claim, defects by severity, and an explicit verdict.
|
||||
|
||||
Date: 2026-11-09 · Branch: `facades-0.1.4` · Build under test: packaged `GigLineQA`, Development, UE 5.8.4, Vulkan SM5.
|
||||
|
||||
## Result: SHIP WITH NOTES
|
||||
|
||||
The geometry, placement and budgets are verified by measurement. The **visual** half of this review is **not** complete: nobody has looked at the rendered set since the kit went on, so the reference-match verdict is pending a human. The notes at the end are what that review has to confirm.
|
||||
|
||||
## Budgets
|
||||
|
||||
| Asset group | Count | Triangles | Texture | Notes |
|
||||
| --- | --: | --: | --- | --- |
|
||||
| Hero façade | 148 parts, 1 mesh | 3 044 | none (graph materials) | was 1 892 before the Ionic detail |
|
||||
| Façade kit | 16 meshes | 12 tris each = 192 | none | boxes; complex-as-simple collision |
|
||||
| Kit instances in `DemoMap` | 625 actors | ~7 500 | shared materials | 8 buildings |
|
||||
| Frontage buildings | 6 meshes | blockout volumes | 8 × 512² maps | `M_FacadeStone`, `M_Stucco`, … |
|
||||
| North buildings | 2 meshes | blockout volumes | shared | TCL, Tussaud's |
|
||||
| Site meshes | 7 | 55 k tris (terrain-dominated) | shared | terrain/road/sidewalks/kerbs/crossing |
|
||||
|
||||
Texture set: `T_StoneAshlar`, `T_Stucco`, `T_Asphalt`, `T_Concrete`, each `_BC` + `_R` at 512², deterministic and regenerable.
|
||||
|
||||
## Evidence
|
||||
|
||||
Behaviour, packaged build (`-qaselftest`):
|
||||
|
||||
```
|
||||
walk moved 761 cm in 2 s -> PASS (Z 456 -> 456)
|
||||
transect 1456 samples, 0 holes -> PASS
|
||||
wall probe 0/35 blocking hits inside 21 m -> PASS
|
||||
facade probe 0/9 directions without a blocking wall -> PASS
|
||||
RESULT walk=1 reset=1 pause=1 unpause=1 -> PASS
|
||||
```
|
||||
|
||||
Geometry and placement, probed from the live map:
|
||||
|
||||
- Frontage spans match the verified block: 6922 −24276..−17700, 6902 −17749..−14591, **hero −14644..−12028 between them**, theatre −12082..−8210, 6822 −7854..−7252, 6806 −6608..−3307, 6800 −3320..−1437. North: TCL −22889..−18442, Tussaud's −27071..−22799.
|
||||
- Kit placed from world bounds (`get_actor_bounds`), e.g. theatre pieces at −12082..−8694, inside the theatre's own span.
|
||||
- Kit module **4.96 m**, storey **3.10 m**, door **2.45 m**, window **1.60 × 1.85 m**.
|
||||
- Kit topology: 16 pieces, **all manifold**, no loose vertices, 12 tris each.
|
||||
- Asset hygiene: `/Game/Hollywood/Kit` holds exactly 16 `SM_` meshes and no leftover auto-imported materials.
|
||||
|
||||
Screenshots: the committed set in [`Screenshots/`](../Screenshots/README.md), all 14 re-rendered for this state — hero shots 8–10 and demo views 11–14 carry the change.
|
||||
|
||||
## Defects
|
||||
|
||||
### Blockers
|
||||
|
||||
None outstanding. Two were found and fixed during this cycle:
|
||||
|
||||
- **Wrong frame (fixed).** The `0.1.2` blockout was regenerated without `--origin`, shifting the whole frontage ≈119 m in X and 2.4 m in Y and dropping the hero out of the 6902/6838 gap. Regenerated with `--origin 34.101545,-118.338718` (affine residual 0.0 cm); spans re-verified against [`Geo/verification/2026-11-06-el-capitan-block.md`](../Geo/verification/2026-11-06-el-capitan-block.md).
|
||||
- **Kit placed 12 km away (fixed).** `ue_apply_facade_kit` used the static-mesh bounding box, which is building-line-local. Now uses `get_actor_bounds()` (world space).
|
||||
|
||||
### Majors
|
||||
|
||||
- **Window bays were inside the solid wall (fixed).** The first piece modelled the whole bay at +Y, so every window sat inside the blockout volume and was invisible. The surround now projects 3 cm with glazing 6 cm behind its face.
|
||||
- **Kit had no materials (fixed).** Pieces kept the grey `M_Kit_*` material the FBX import creates, so the glazing was not glass and the shopfronts were not stone. Assembly now assigns `M_FacadeGlass` to glazing, `M_FacadeStone` to surrounds, `M_FacadeStoneShadow` to doors and `M_FacadeBanner` to fascias.
|
||||
|
||||
### Minors
|
||||
|
||||
- Kit pieces are boxes: no reveals, sills or mouldings beyond the kit's own bands. Acceptable at this patch's fidelity; the kit is the vocabulary, not the detail.
|
||||
- `M_Kit_*` materials are deleted at import rather than reused, so the kit's Blender materials carry no shading intent — the Unreal set is authoritative. Documented, not silent.
|
||||
- Actor labels for kit pieces are unique per building but long (`Kit_elcapitantheatre_window_3_2`).
|
||||
|
||||
### Notes (polish, not required for `v0.1.4`)
|
||||
|
||||
- Hero fluting, and the motto band/medallions as geometry, are still pending.
|
||||
- The El Capitan Theatre has no marquee or blade sign yet — the features that make it read as itself.
|
||||
- Cornice dentil spacing, abacus and plinth dimensions remain recorded assumptions.
|
||||
|
||||
## Not verified here
|
||||
|
||||
- **Reference match.** Needs a human comparing `Screenshots/demo/*` against `Art/reference/hollywood/`. The vision pre-check is demonstrably unreliable on this content (it rejected shots the owner has since approved), so it was not used as evidence.
|
||||
- **Silhouette and shading at street level** — the same review covers it.
|
||||
|
||||
## Next actions
|
||||
|
||||
1. Owner review of the 14 demo/review shots; record approval in `Screenshots/README.md`.
|
||||
2. Then the remaining `0.1.4` modelling: theatre marquee + blade sign, hero fluting/motto band, blockout cleaning pass.
|
||||
3. `CHANGELOG.md` entry and `v0.1.4` tag once (1) is signed off.
|
||||
@@ -1,8 +1,8 @@
|
||||
# `0.1.4` façade review — signoff
|
||||
|
||||
Four demo-map captures from the `facades-0.1.4` branch, after the module kit, the textured materials and the theatre marquee went in. Tick each row you accept; anything not ticked is still open. Mechanical checks (blank/size/tone) already pass via `python3 Tools/visual_loop.py --verify`.
|
||||
Four demo-map captures from the `facades-0.1.4` branch, after the module kit, the textured materials and the theatre marquee went in. **All seven items signed off 2026-11-09** (owner review of the local renders).
|
||||
|
||||
Reference photographs to compare against: `Art/reference/hollywood/` and `Art/reference/el-capitan-*` (local, not committed). Regenerate the set with `Tools/render_screenshots.sh --verify`.
|
||||
Reference photographs to compare against: `Art/reference/hollywood/` and `Art/reference/el-capitan-*` (local, not committed). Regenerate the set with `Tools/render_screenshots.sh --verify`; measure it with `python3 Tools/visual_loop.py --compare --iteration 5`.
|
||||
|
||||
## Signoff
|
||||
|
||||
@@ -40,4 +40,41 @@ Expected: TCL Chinese Theatre and Madame Tussaud's across Hollywood Blvd, full h
|
||||
|
||||
---
|
||||
|
||||
**Notes for the decision:** every defect found in this cycle that survived more than one render was a placement error, not a shading one (a 119 m frame shift, a kit 12 km off, a marquee mirrored across the street). Placement is now probed rather than eyeballed, so the remaining risk in these four images is _likeness_, not correctness. The low edge ratios are partly structural — a wide block view compared with a tight façade crop always scores low — so weigh the images, not the scores.
|
||||
## Appendix — what was checked, and what was broken
|
||||
|
||||
### Verified
|
||||
|
||||
- **Behaviour**, packaged build, `-qaselftest`: walk 761 cm in 2 s (Z steady 456), reset 0 cm, pause/unpause, seam transect 1456 samples / **0 holes**, wall probe **0/35**, façade occlusion probe **0/9** — all PASS. Run twice: the harness is time-based and one loaded run reported a false failure (`walk 246 cm`, `pause FAIL`), an immediate re-run passed — re-run before believing a single FAIL.
|
||||
- **Placement**, probed from the live map against `Geo/verification/2026-11-06-el-capitan-block.md`: 6922 −24276…−17700, 6902 −17749…−14591, **hero −14644…−12028 between them**, theatre −12082…−8210, 6822 / 6806 / 6800 −7854…−1437, TCL −22889…−18442, Tussaud's −27071…−22799. Blockout affine residual **0.0 cm**.
|
||||
- **Budgets**: hero 148 parts / 3 044 tris · kit 16 meshes × 12 tris · 625 kit actors ≈ 7 500 tris · 8 × 512² textures (196 KB) · 67 tool tests pass.
|
||||
- **Topology**: every kit piece manifold, no loose geometry.
|
||||
|
||||
### Defects found this cycle
|
||||
|
||||
Every one of these rendered convincingly; the placement ones were caught by coordinate probes, not by looking.
|
||||
|
||||
| Sev | Defect | Root cause |
|
||||
| --- | --- | --- |
|
||||
| Blocker | Frontage shifted ≈119 m X / 2.4 m Y, hero outside its gap | Blockout regenerated without `--origin` |
|
||||
| Blocker | Kit placed ~12 km from its buildings | Used mesh-local bbox; actors carry the offset |
|
||||
| Blocker | Marquee on the far side of the boulevard | Blender +Y is Unreal −Y |
|
||||
| Major | Marquee canopy 5 cm above the pavement | Absolute Z; pavement is 4.56 m above datum |
|
||||
| Major | Window bays invisible, inside the solid wall | Piece modelled entirely at +Y |
|
||||
| Major | Glazing wasn't glass | Grey `M_Kit_*` from the FBX import, never overridden |
|
||||
| Major | Hero windows floated 1.44 m in front of the wall | Wrong Y in the builder |
|
||||
| Major | Parapet medallions were discs on the coping | Built with the Z-axis cylinder helper |
|
||||
| Major | Hero had no usable collision | Complex-only; traces use simple |
|
||||
| Minor | "No smoothing group information" on every import | `mesh_smooth_type="OFF"` in six exporters |
|
||||
| Minor | `save_map()` returned False silently | LFS `.umap` read-only, importer never chmod'd |
|
||||
| Minor | North-buildings import silently no-op | Missing `import sys` |
|
||||
| Minor | Kit folder held 24 assets (8 orphan materials) | No stale-asset sweep |
|
||||
| Minor | Edge-density metric counted PIL's border ring | `FIND_EDGES` leaves a 128 ring |
|
||||
| Minor | QA wall probe grazed the theatre wall | Scan row 1 cm from the building line |
|
||||
|
||||
### Limitations worth knowing
|
||||
|
||||
- Kit pieces are boxes; dentil spacing, abacus and plinth dimensions are recorded assumptions, not measurements.
|
||||
- Textures are generated, not authored — no decals, signage text or weathering.
|
||||
- The vision pre-check stays advisory: it has rejected shots the owner approved.
|
||||
- The low edge ratios in the metrics are partly structural — a wide block view against a tight façade crop always scores low. Weigh the images, not the scores.
|
||||
- Performance has not been re-measured since `0.1.0`; the 625 kit actors are unmeasured (tracked in `TODO.md` under `0.1.5`).
|
||||
Reference in new issue
Block a user