Files
benilla-octo/crates
pkuzicandClaude Fable 5.1 f8b05f25ae MONKEY: lighting round 3 — daylight fixtures, spell lights, shadow quality, 8-light exterior selection
Interiors
- Daylight fixtures (lighting/daylight.rs): PORTAL/APERTURE/BOUNDARY seeds calibrated so the
  room law at a door equals the sunlit reference; BLEED fixtures at interior↔interior portals
  carry 0.6× the brighter side; interiorDaylight default 0 (daylight only through doors/windows).
- Darkness gains: nightGain 0.45, interiorGain 0.5 (Dim preset), interiorAmbient 0.015, fill 0.08.
- Enclosed day floor + shell candle add + TRANS night floor (capped 1.5× room, sun-gated).
- interiorBakeFloor 0.12: a per-fragment floor from the authored MOCV so fixture-starved rooms
  (the Lion's Pride vestibule, 2 % of tex before) are never black; packed in sh_c16.w's fraction.
- TRANS blend continuity: smooth-max replaces the per-channel max whose crossing loci drew a
  hard diagonal across the vestibule floor by day.
- Debug panel "Lighting & shadows" (Ctrl+Shift+D) with sliders for every lighting cvar + presets.

Torch cube-map shadows
- Owner exclusion (LightOwner placement/instance + flame-in-bounds) — the swinging lantern.
- torchShadowStrength 0.7 shadow floor (packed with soft into TorchTable.count.y), PCSS-lite
  contact hardening (raw depth blocker search), interiorShadowSoft 1.5.
- Moving fixtures (carried lights) re-render every frame (cap 2) instead of publishing a stale map.
- Normal offset on the WMO surface lane (interior + exterior) — the imp's boxy/moiré pool.

Spell and firework lights (benilla-formats fire_light.rs spell route)
- Fire / Holy / Fel effects emit a short-lived point light (kits, missiles, impacts, firework
  GO shells); frost/nature/arcane/shadow vetoed by name; lifecycle envelope; cap 24;
  WOW_SPELL_LIGHT=0 kill switch.

Exterior point lights
- ≤3-nearest per draw unit → 8 (8-bit ranks, table cap 255), ranked by distance to the chunk's
  box; cube occlusion only for ranks 0..2. Removes the chunk-edge "scars" at the Darkmoon Faire
  (15 synthesised fixtures in one chunk's reach) and the lit-bench-over-dark-ground disagreement.

Tooling: benilla-extract wmolights --verts <group>; missing-model placements retire instead of
pinning the loading screen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-13 14:38:53 +01:00
..