feat: full cel treatment for Neon Alley — flat toon colors + ink outlines

- LevelMaterials.flat(): toon-banded FLAT color material (no greybox grid
  texture) for dressed maps; cached per tint, rim/spec off
- Neon Alley overrides _box_static: every structure renders flat cel color;
  prop-scale pieces (<10m) get an inverted-hull ink outline scaled to their
  size. Building-scale boxes skip the hull — the inflated plates smear into
  black voids at close range (found via fixed street-camera capture)
- Pylon wires render as flat ink lines; warmer wood + hotter vermilion for
  flat shading (the grid multiply used to brighten tints)
- visual_capture: deterministic street-level shot after the aerial for
  style comparisons

Street capture now reads properly BoomerangX: flat lavender asphalt, hard
light bands, torii framed down the underpass, neon strips + sign glow.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
Nicholas Butzke
2026-07-18 14:23:37 -04:00
co-authored by Claude Fable 5
parent 0813d0b40d
commit 233f88aee3
3 changed files with 48 additions and 4 deletions
+7
View File
@@ -48,6 +48,13 @@ func _process(_delta: float) -> bool:
aerial.current = true
elif _frames == 340:
_shot("aerial")
# Fixed street-level view for deterministic style comparisons
var cam := root.get_camera_3d()
if cam:
cam.global_position = Vector3(3, 2.2, 20)
cam.look_at(Vector3(-8, 4, -18), Vector3.UP)
elif _frames == 360:
_shot("street")
return true
return false