docs(design): fog and exposure use the game's own values; the removed OoT factors are no longer needed #159

Merged
HumanBean merged 1 commit from d4nkn3ss/Longshot:docs/design-fog-factors into main 2026-11-13 17:01:36 +00:00
Contributor

Why

docs/design.md tells readers the OoT fog and exposure factors are still needed and fog's cause is open, but those factors were removed a while ago, so anyone working on fog or exposure starts from a wrong picture (#124).

What changed

  • docs: docs/design.md's line on the OoT fog and exposure factors now says fog and exposure come from the game's own values. The factors (Orchid's workaround) were off from 11-07 and removed in Hookshot #2042 as "tuned against bugs since fixed"; RX_VK_OOT, RX_VK_OOT_EXPOSURE, RX_VK_OOT_FOG and RX_VK_OOT_VISUAL are only logged as doing nothing (removed_switch_notes() in host/hos_main.c). The ground fog that vanished when looking down was the early texel writes being dropped, fixed in Hookshot #638.

Flags and settings

None

Measurements

main: 1be180bb (2026-11-13)
this PR: docs/design-fog-factors @ 411002da
Hardware: n/a (docs)
Scene: n/a (docs)
Method: the sources read: git show 2f2f5372 (#2042's message), removed_switch_notes() in host/hos_main.c (lines 516-534), grep -rn "RX_VK_OOT_FOG\|RX_VK_OOT_EXPOSURE" gpu/ (no match), git show 988e17c0 (#638)
How to reproduce: the same commands

main @ 1be180bb this PR @ 411002da
design.md on the OoT factors "still needed: with them off the fog is far too thick. Fog's cause is open." removed in #2042, tuned against bugs since fixed; fog and exposure from the game's own values
renderer code reading RX_VK_OOT_FOG / RX_VK_OOT_EXPOSURE none none

Testing

Tested: the statements against the sources above. In tonight's runs of main on an RTX 3080 (Kokiri Forest, Hyrule Field, Zora's River, Zora's Domain, Gerudo Valley), the fog wasn't too thick or missing; that's by eye, not a measurement.

Full suite: docs only; no check reads docs/design.md's text, and python -I -B tests/run_all.py on main @ 1be180bb fails only the three checks #80, #118, #119, #144 and #145 fix.

Not tested: fog against the Switch 2 original: nobody has a side-by-side reference here.

Needs other testers: None

Screenshots

Nothing on screen

Risk and rollback

Docs only; reverting the commit is enough.

Issues

Fixes #124

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing. (Docs only.)
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. (Docs: the sources and the before/after above.)
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • Docs updated.

🤖 Generated with Claude Code

## Why `docs/design.md` tells readers the OoT fog and exposure factors are still needed and fog's cause is open, but those factors were removed a while ago, so anyone working on fog or exposure starts from a wrong picture (#124). ## What changed - docs: `docs/design.md`'s line on the OoT fog and exposure factors now says fog and exposure come from the game's own values. The factors (Orchid's workaround) were off from 11-07 and removed in Hookshot #2042 as "tuned against bugs since fixed"; `RX_VK_OOT`, `RX_VK_OOT_EXPOSURE`, `RX_VK_OOT_FOG` and `RX_VK_OOT_VISUAL` are only logged as doing nothing (`removed_switch_notes()` in `host/hos_main.c`). The ground fog that vanished when looking down was the early texel writes being dropped, fixed in Hookshot #638. ## Flags and settings None ## Measurements main: 1be180bb (2026-11-13) this PR: docs/design-fog-factors @ 411002da Hardware: n/a (docs) Scene: n/a (docs) Method: the sources read: `git show 2f2f5372` (#2042's message), `removed_switch_notes()` in `host/hos_main.c` (lines 516-534), `grep -rn "RX_VK_OOT_FOG\|RX_VK_OOT_EXPOSURE" gpu/` (no match), `git show 988e17c0` (#638) How to reproduce: the same commands | | main @ 1be180bb | this PR @ 411002da | |---|---|---| | design.md on the OoT factors | "still needed: with them off the fog is far too thick. Fog's cause is open." | removed in #2042, tuned against bugs since fixed; fog and exposure from the game's own values | | renderer code reading `RX_VK_OOT_FOG` / `RX_VK_OOT_EXPOSURE` | none | none | ## Testing **Tested:** the statements against the sources above. In tonight's runs of main on an RTX 3080 (Kokiri Forest, Hyrule Field, Zora's River, Zora's Domain, Gerudo Valley), the fog wasn't too thick or missing; that's by eye, not a measurement. **Full suite:** docs only; no check reads `docs/design.md`'s text, and `python -I -B tests/run_all.py` on main @ 1be180bb fails only the three checks #80, #118, #119, #144 and #145 fix. **Not tested:** fog against the Switch 2 original: nobody has a side-by-side reference here. **Needs other testers:** None ## Screenshots Nothing on screen ## Risk and rollback Docs only; reverting the commit is enough. ## Issues Fixes #124 ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. (Docs only.) - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. (Docs: the sources and the before/after above.) - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] Docs updated. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
docs(design): fog and exposure use the game's own values; the removed OoT factors no longer "needed"
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 3s
411002da1b
design.md still said the OoT fog (0.25) and exposure (0.65) factors were needed and fog's cause was open. Those
factors, from Orchid's workaround, were off from 11-07 and removed in Hookshot #2042 as tuned against bugs since fixed;
their switches are only logged as doing nothing (removed_switch_notes) and no renderer code reads them. The line now
says so, with the ground-fog fix (#638) that was the open part. Closes #124.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
HumanBean left a comment

The new line holds up against main. RX_VK_OOT, RX_VK_OOT_EXPOSURE, RX_VK_OOT_FOG and RX_VK_OOT_VISUAL are only in removed_switch_notes() in host/hos_main.c, which logs that they do nothing. Nothing under gpu/vk/ reads them. oot_visual_workaround.h went in 2f2f5372 (Hookshot #2042), whose message says "off since 11-07; its factors were tuned against bugs since fixed". The ground fog fix is 988e17c0 (Hookshot #638). The doc change merges cleanly onto current main.

One thing to change before merge: the line names the Hookshot PRs as Hookshot #2042 and Hookshot #638. AGENTS.md asks for GitHub PRs as full URLs, and the README and tested-configurations.md already do it that way. Inline comment below.

Description nits (no code change needed):

  • Under Full suite it says "fails only the three checks #80, #118, #119, #144 and #145 fix". That names five PRs for three checks.
  • The Why / What changed sections and the table use bare #2042 and #638 for Hookshot PRs. On Forgejo those link to Longshot's own numbers, so make them full URLs there too.
The new line holds up against main. `RX_VK_OOT`, `RX_VK_OOT_EXPOSURE`, `RX_VK_OOT_FOG` and `RX_VK_OOT_VISUAL` are only in `removed_switch_notes()` in `host/hos_main.c`, which logs that they do nothing. Nothing under `gpu/vk/` reads them. `oot_visual_workaround.h` went in 2f2f5372 ([Hookshot #2042](https://github.com/NotRexed/Hookshot/pull/2042)), whose message says "off since 11-07; its factors were tuned against bugs since fixed". The ground fog fix is 988e17c0 ([Hookshot #638](https://github.com/NotRexed/Hookshot/pull/638)). The doc change merges cleanly onto current main. One thing to change before merge: the line names the Hookshot PRs as `Hookshot #2042` and `Hookshot #638`. AGENTS.md asks for GitHub PRs as full URLs, and the README and tested-configurations.md already do it that way. Inline comment below. Description nits (no code change needed): - Under Full suite it says "fails only the three checks #80, #118, #119, #144 and #145 fix". That names five PRs for three checks. - The Why / What changed sections and the table use bare `#2042` and `#638` for Hookshot PRs. On Forgejo those link to Longshot's own numbers, so make them full URLs there too.
@ -248,2 +248,3 @@
around Link (`1e26755d`, the per-character shadow projector, drawn as a box that discards outside) and most of the milky look.
- The OoT fog (0.25) and exposure (0.65) factors are still needed: with them off the fog is far too thick. Fog's cause is open.
- Fog and exposure come from the game's own values: no OoT factor scales them. The fog (0.25) and exposure (0.65) factors, from
Orchid's workaround, were off from 11-07 and removed in Hookshot #2042 (`RX_VK_OOT`, `RX_VK_OOT_EXPOSURE`, `RX_VK_OOT_FOG`,
Owner

AGENTS.md asks for GitHub PRs as full URLs, and a bare #2042 here links to Longshot's own number, which isn't this PR. README.md and tested-configurations.md already link Hookshot PRs this way. Suggest removed in [Hookshot #2042](https://github.com/NotRexed/Hookshot/pull/2042), and the same on line 253: ([Hookshot #638](https://github.com/NotRexed/Hookshot/pull/638)). The README already uses that #638 URL.

AGENTS.md asks for GitHub PRs as full URLs, and a bare `#2042` here links to Longshot's own number, which isn't this PR. README.md and tested-configurations.md already link Hookshot PRs this way. Suggest `removed in [Hookshot #2042](https://github.com/NotRexed/Hookshot/pull/2042)`, and the same on line 253: `([Hookshot #638](https://github.com/NotRexed/Hookshot/pull/638))`. The README already uses that #638 URL.
HumanBean deleted branch docs/design-fog-factors 2026-11-13 17:01:47 +00:00
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 3s
Some workflows are waiting to be reviewed.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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
MagicBeanDev/Longshot!159
No description provided.