feat(renderer): powder sugar cloud edge darkening (ADR-0039) #104

Merged
akadmin merged 1 commit from feat/cloud-powder-effect into main 2026-07-10 03:51:02 +00:00
Owner

Implements #27: the Horizon paper powder sugar effect.

  • Schneider powder curve 1 - exp(-2*od) on the same sun-ray optical depth Beer's law uses (sun_transmittance_at renamed sun_optical_depth_at, now returns raw od), multiplied into the direct sun term only — ambient floor untouched.
  • View-dependent, evaluated once per ray like the HG phase: weight 0 looking toward the sun (silver lining preserved), 1 looking away — dark thin edges, lighter crevices on the lit faces.
  • Tunable CloudParams::powder_strength (default 1.0) rides the last reserved push lane misc.w; CloudPush stays 48 bytes. powder_strength = 0 reproduces ADR-0038 lighting bit-exact, same baseline convention as phase_g = 0.
  • ADR-0039 + index entry, CLAUDE.md clouds paragraph updated, clouds.rs tests extended (449 tests pass, clippy/fmt clean).

🤖 Generated with Claude Code

Implements #27: the Horizon paper powder sugar effect. - Schneider powder curve `1 - exp(-2*od)` on the same sun-ray optical depth Beer's law uses (`sun_transmittance_at` renamed `sun_optical_depth_at`, now returns raw `od`), multiplied into the direct sun term only — ambient floor untouched. - View-dependent, evaluated once per ray like the HG phase: weight 0 looking toward the sun (silver lining preserved), 1 looking away — dark thin edges, lighter crevices on the lit faces. - Tunable `CloudParams::powder_strength` (default 1.0) rides the last reserved push lane `misc.w`; `CloudPush` stays 48 bytes. `powder_strength = 0` reproduces ADR-0038 lighting bit-exact, same baseline convention as `phase_g = 0`. - ADR-0039 + index entry, CLAUDE.md clouds paragraph updated, clouds.rs tests extended (449 tests pass, clippy/fmt clean). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(renderer): powder sugar cloud edge darkening (ADR-0039)
All checks were successful
CI / build (pull_request) Successful in 3m24s
6dc2af04f5
Multiply the Schneider powder curve (1 - exp(-2*od), same sun-ray optical
depth Beer's law uses) into the clouds' direct sun term, blended per ray
by view angle so the silver lining toward the sun survives — dark thin
edges, lighter crevices (issue #27). CloudParams::powder_strength
(default 1.0, 0 = ADR-0038 baseline bit-exact) rides the last reserved
push lane misc.w; CloudPush stays 48 bytes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
akadmin deleted branch feat/cloud-powder-effect 2026-07-10 03:51:03 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
akadmin/NemesisEngine!104
No description provided.