EN-023 groundwork: SDF card lookup (world AABBs, smallest-box pick) + WSRC ground bounce#79
Closed
proggeramlug wants to merge 1 commit into
Closed
EN-023 groundwork: SDF card lookup (world AABBs, smallest-box pick) + WSRC ground bounce#79proggeramlug wants to merge 1 commit into
proggeramlug wants to merge 1 commit into
Conversation
Round-2 audit F4: on non-RT adapters (the dev 760M) SSGI's SDF path
degraded every transformed instance to flat gray and the SW radiance
cache was light-source-only — colored bounce structurally impossible.
Fixed in this PR:
- instance data now carries WORLD-space AABBs alongside the object-
space ones (all four shader layout mirrors updated). The SDF broad-
phase compares its world-space clipmap hits against the world boxes
— the old object-space comparison only ever matched assets whose
vertices were already in world space (Sponza). HW paths keep using
the object-space boxes with hit.world_to_object, unchanged.
- broad-phase picks the SMALLEST containing box, not the first: the
shooter's +/-140 m terrain proxy otherwise swallowed every hit
(walls and trees included) and its mostly-empty side cards actively
darkened the bounce.
- the SW WSRC bake gains a ground-bounce term for below-horizon
octels (scene-average instance albedo x sun-shadowed irradiance +
half sky) — it previously returned ~black for every downward miss
ray, dropping the strongest real bounce source entirely.
Measured honesty (GI pose A/B, sky-normalized, settled):
- ship intensity 1.0: deltas within noise (<=1%), hue unchanged
- intensity 4.0: +1.4-2.1% luma in shaded receivers, hue still
unchanged (G/R 0.9456 vs 0.9460)
The data path is now correct, but visible colored bounce on the SW
tier remains capped downstream (probe resolve magnitude, composite AO
multiply on exactly the shaded receivers, radius/hit-rate at the
receivers). EN-023 stays open pointing at the resolve/integration
stage; decision D2-B (bank the ~1.6 ms on iGPU) remains sensible until
that lands.
Suite green (99 lib + 7 golden). Boot-smoked at 4K; A/B runs above
were on the live game.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Contributor
Author
|
Landed in main via the round-2 consolidation merge (#83). All commits from this branch are now on main; closing as merged-through-integration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #75. Implements the correctness half of EN-023 with honest measurements attached.
What was broken (audit F4)
On non-RT adapters the SDF probe trace compared world-space clipmap hits against object-space card AABBs — only identity-transform assets (Sponza) ever matched, so every one of the shooter's 267 transformed GI proxies fell through to the flat-gray analytic fallback. Separately, the software radiance-cache bake was light-source-only: downward miss rays returned ~black, i.e. no ground bounce at all.
Fixes
hit.world_to_object, unchanged.Measured honesty (GI pose A/B on the live game, sky-normalized, settled)
The data path is now structurally correct, but visible colored bounce on the SW tier is capped downstream — probe resolve magnitude, the composite's AO multiply landing on exactly the shaded receivers, and hit-rate/radius at the receivers. EN-023 stays open, now pointed at the resolve/integration stage with this data. Decision D2-B (disable SSGI on iGPU and bank ~1.6 ms) remains reasonable until that lands.
Suite green: 99 lib + 7 golden.