diff --git a/docs/ISSUES.md b/docs/ISSUES.md index cc50640e..3d0389a1 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -24,6 +24,28 @@ What does NOT go here: - Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending. - Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed. +## #423 — Atmospheric ray/shadow/volumetric day-group policy keys on the raw day-group index, not the DAT-classified WeatherKind + +**Status:** OPEN — filed 2026-08-23 at Campaign VM VM6 (spot-check); pre-existing from Campaign AR. +**Component:** rendering / render packs — atmosphere policy + +**Description:** `BuiltInAtmosphericRenderPack.AtmospherePolicy()` declares +`ActiveDayGroupMultiplier(0, 1.0), (1, 0.35), (2, 0.20)` and +`AtmosphericPostProcessGraph.EvaluateDayGroupPolicy` applies it to sun-ray, +directional-shadow and volumetric strength by the raw `activeDayGroup` +INDEX, with an undocumented assumed meaning (0 = brightest … 2 = dimmest). +Dereth's day-group index carries no weather meaning; the codebase classifies +the group's DAT name into `AcDream.Core.World.WeatherKind` (Clear/Overcast/ +Rain/Snow/Storm, `WeatherState.cs:198-232`), which `DirectionalShadowQuality` +already keys on. VM6's foliage wind was corrected to `WeatherKind` at +`6cc5e183`; the ray/shadow/volumetric multiplier was left as-is because the +owner accepted its look at the Stage-1 gate and re-keying changes it. + +**What to do:** re-declare as `WeatherKind`-keyed points (same shape as +`FoliageWindByWeather`), choose the per-kind multipliers at an owner visual +gate, and retire `ActiveDayGroupMultiplier`. Validator must reject unknown +kinds. Same class as the VM6 fix; do not guess the values. + ## #422 — Intermittent heap-corruption exit (0xC0000374) after a pack-on offline capture **Status:** OPEN — filed 2026-08-22 at Campaign VM VM3; VM7 gate item (fix or characterise before merge).