Verify the marquee emissive balance and close the facade-realism pass
This commit is contained in:
1 parent
2b07913481
commit
8c2761427f
2 files changed
+28
-7
No files matched your search
@@ -393,16 +393,16 @@ facade evidence is still the 2009 CC BY frame. The 8 downloaded candidates are i
|
|||||||
- [ ] Run the assisted Blender pipeline end to end on the first block (OSM import → `inspect` →
|
- [ ] Run the assisted Blender pipeline end to end on the first block (OSM import → `inspect` →
|
||||||
retopo/UV assist → atlas → `audit`), and document the exact commands in
|
retopo/UV assist → atlas → `audit`), and document the exact commands in
|
||||||
`docs/asset-tooling.md`.
|
`docs/asset-tooling.md`.
|
||||||
- [-] Building-appearance realism pass, measured against the reference set: bring the masonic
|
- [x] Building-appearance realism pass, measured against the reference set: bring the masonic
|
||||||
facade's material response (limestone value/roughness, joint lines, weathering streaks),
|
facade's material response (limestone value/roughness, joint lines, weathering streaks),
|
||||||
the banner/canopy and marquee materials, and the night emissive balance to the level of the
|
the banner/canopy and marquee materials, and the night emissive balance to the level of the
|
||||||
2009 facade photo and the 2026 street frames; capture before/after and record each delta.
|
2009 facade photo and the 2026 street frames; capture before/after and record each delta.
|
||||||
(Ashlar field landed: `limestone_ashlar` tile generated reference-anchored from the facade
|
(Ashlar field: `limestone_ashlar` tile, reference-anchored on the facade photo, 768 px over
|
||||||
photo, 768 px over ~4.6 m of wall = ~167 px/m, promoted via the picks pipeline; facade
|
~4.6 m of wall = ~167 px/m, promoted via the picks pipeline, warm-shifted tint behind
|
||||||
field + tint warm-shift live behind `VENUE_SPECS`, recapture committed and the day board
|
`VENUE_SPECS`. Banner cloth: warm self-light registered with `_marquee_emissive` (0.14 base;
|
||||||
rebuilt. Banner cloth now carries a warm self-light registered with `_marquee_emissive`
|
0.28 night / 0.028 day). Marquee sign face + bulbs: warm-incandescent already in the prop
|
||||||
(0.14 base energy; 0.28 at night, 0.028 by day), night capture promoted and the night
|
PALETTE, now test-verified to brighten at night via `_marquee_emissive`. Day and night
|
||||||
board rebuilt. Still open: marquee/canopy material pass.)
|
captures promoted, both three-up boards rebuilt.)
|
||||||
- [ ] Upgrade the facade from flat material bands to photoreal detail: either texture-projected
|
- [ ] Upgrade the facade from flat material bands to photoreal detail: either texture-projected
|
||||||
detail (Path B below) or AI-generated material tiles derived from the facade photo (with
|
detail (Path B below) or AI-generated material tiles derived from the facade photo (with
|
||||||
provenance), then verify texel density, tiling and the night look.
|
provenance), then verify texel density, tiling and the night look.
|
||||||
|
|||||||
@@ -212,6 +212,27 @@ func test_street_lamps_and_marquee_built() -> bool:
|
|||||||
root.free()
|
root.free()
|
||||||
return a and b and TestUtils.check(night_on, "lamps brighten at night") and TestUtils.check(day_off, "lamps dim in daylight")
|
return a and b and TestUtils.check(night_on, "lamps brighten at night") and TestUtils.check(day_off, "lamps dim in daylight")
|
||||||
|
|
||||||
|
func test_marquee_emissive_balanced_at_night() -> bool:
|
||||||
|
## The marquee sign face and bulbs are registered with the day/night cycle:
|
||||||
|
## they brighten after dark and fall back to a faint glow in daylight, so the
|
||||||
|
## marquee reads as practical lighting instead of a black box.
|
||||||
|
var root := Node3D.new()
|
||||||
|
var builder := WorldBuilder.new(root)
|
||||||
|
builder.build()
|
||||||
|
var emissive := builder._marquee_emissive
|
||||||
|
var ok := emissive.size() >= 2
|
||||||
|
builder.set_night_mode(true)
|
||||||
|
var night_energy := 0.0
|
||||||
|
for mat in emissive:
|
||||||
|
night_energy += mat.emission_energy_multiplier
|
||||||
|
builder.set_night_mode(false)
|
||||||
|
var day_energy := 0.0
|
||||||
|
for mat in emissive:
|
||||||
|
day_energy += mat.emission_energy_multiplier
|
||||||
|
root.free()
|
||||||
|
return ok and TestUtils.check(night_energy > day_energy,
|
||||||
|
"marquee emissive surfaces brighten at night")
|
||||||
|
|
||||||
func test_asset_textures_present_and_pow2() -> bool:
|
func test_asset_textures_present_and_pow2() -> bool:
|
||||||
var required := [
|
var required := [
|
||||||
"res://assets/textures/brick_facade.png",
|
"res://assets/textures/brick_facade.png",
|
||||||
|
|||||||
Reference in new issue
Block a user