Files
gig-line/Screenshots
zwitschi 9a3784683f feat(materials): masonry coursing, glass/banner materials, per-slot assignment, telephoto elevations
0.1.4 materials pass plus the camera fix levelling exposed.

Materials (Tools/ue_build_demo_map.py):
- ensure_material() gains optional masonry coursing (world-space course height,
  joint band, joint tint) and roughness variation, so facades read as coursed
  stone/stucco instead of one flat specular plane.
- WorldPosition is in centimetres: course heights in metres are scaled by 100
  (the first attempt divided by 0.55 and the coursing was invisible).
- connect_material_expressions returns False rather than raising, so every link
  now goes through a link() helper that logs failures; UE has no
  MaterialExpressionLess, so the joint mask is Frac -> Divide -> OneMinus -> Clamp.
- New materials: M_FacadeStoneShadow, M_FacadeGlass (specular 0.62 ~ IOR 1.5),
  M_FacadeBanner.
- Material assignment is now per SLOT keyed on the imported slot material name.
  It was slot-0 only, which on the hero is the banner, so stone, shadow stone and
  glazing still wore flat Blender materials. Hero now 4/4 slots.

Cameras (GigLineShotActor + ue_build_review_map):
- Optional per-shot ShotFieldOfView; the shot tuples take a 4th element.
- Elevations use a 42-55 deg lens from across the street: with the cameras
  levelled (0.1.2 follow-up) the building was small in frame, and tilting to fill
  it is what breaks the verticals. hero-facade-front sky 39% -> 20%,
  demo-spawn-view 23% -> 16%.

Screenshots re-rendered for the whole set.
2026-11-08 19:00:41 +01:00
..

Screenshots — visual review

Rendered in-game captures of the current project content, generated by Tools/render_screenshots.sh. The PNGs are committed alongside this README so a reviewer sees exactly what the build rendered.

How to regenerate

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

Status: whole set ☑ approved 2026-11-09 (owner review of PR #27). Every shot was re-rendered from current main content after the building-height calibration was adopted (v0.1.2): Mapbox-derived 3.1 m per level (Geo/tools/block_height_report.py), explicit overrides for three rear outbuildings, and the regenerated blockout and frontage that follow — 6922 is now 39.1 m (was 42.1 m) and the El Capitan Theatre 20.5 m (was 20.0 m).

Round What changed
2026-11-07 First approved set; block frontage pass corrected hero and north-building placement
2026-11-08 Re-rendered after 0.1.1 street geometry (sidewalk upstand flush at the building edge, crossing ramps graded ≤ 8 %); demo-north-buildings camera re-pointed (was 9.5 km west, 85 % sky)
2026-11-09 Re-rendered after the 0.1.2 building-height calibration (3.1 m per level). 12 of 14 PNGs changed; review-demo-spawn-view and review-demo-street-level are byte-identical to the 0.1.1 round, so the height change reads mostly on the frontage silhouettes
# File Preview Map View What it shows ☑
1 review-overview.png overview Review 7 m up, NE Whole review layout: character + both cubes on the floor ☑ 2026-11-09
2 review-character.png character Review eye height, south MPFB mannequin, idle pose + warm skin; feet meet the plane ☑ 2026-11-09
3 review-scale-cubes.png scale cubes Review south Floating vs grounded cube: cast vs contact shadow ☑ 2026-11-09
4 review-player-placement.png player placement Review spawn The AGigLineCharacter pawn, capsule height and landing ☑ 2026-11-09
5 review-npc-prefab.png npc prefab Review mid, west The AGigLineNPCPerson prefab: collision capsule + visible MPFB body, feet on Z 0 ☑ 2026-11-09
6 review-ground-contact.png ground contact Review knee height, feet Floating/sinking character is obvious here ☑ 2026-11-09
7 review-shadow-compare.png shadow compare Review low angle Detached (floating) vs touching (grounded) shadows ☑ 2026-11-09
8 review-hero-portals.png hero portals Review 8 m, eye height Three genuine 1.2 m portal recesses with flights and plinth ☑ 2026-11-09
9 review-hero-facade-front.png hero facade front Review road side, straight-on Hero façade elevation and column rhythm ☑ 2026-11-09
10 review-hero-facade-oblique.png hero facade oblique Review north-west Body depth and column line standing proud of the mass ☑ 2026-11-09
11 demo/review-demo-spawn-view.png spawn view Demo north sidewalk The whole block: hero façade between its neighbours, both sidewalks and the road ☑ 2026-11-09
12 demo/review-demo-street-level.png street level Demo eye height, north side The hero colonnade with the adjacent frontage buildings either side ☑ 2026-11-09
13 demo/review-demo-crossing.png crossing 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 ☑ 2026-11-09
14 demo/review-demo-north-buildings.png north buildings Demo across the Blvd North-side buildings (TCL, Tussaud's) seen from the south side across the road. 2026-11-08: camera re-pointed to the buildings' mass centre (was 9.5 km west → 85% sky); now frames both north buildings. Flat surfaces = 0.1.4 façade scope. ☑ 2026-11-09

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.

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.
  • Frontage heights (new in this round): 6922 and the El Capitan Theatre were re-cut to the 3.1 m storey height. Check they still read as the taller west end and the lower cinema respectively against Art/reference/hollywood/el-capitan-theatre-blade-sign-day-wikimedia-2008-10.jpg, and that the ordering of the six frontage buildings is unchanged.

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 sit on the column line rather than the wall (acceptable: they hang on the columns in the photographs).
  • Banners and window panels float detached from the colonnade wall — window panes fixed 2026-11-09: they sat at Y −1.98, 1.44 m in front of the wall and ahead of the column line; they now sit on the wall plane at Y −0.56, behind the columns, and read as dark openings (see review-hero-facade-front).
  • Between kerb and building line, the walkable surface is the terrain mesh, not a modelled pavement.