Separates two confounded effects so the pending rotation decision has a number: how much would drawing the rotation actually buy. A per-level lookup table fitted on a screen is the most general tone model there is -- every render level mapped to whatever capture level minimises the error, no functional form assumed -- so whatever such a LUT cannot close is by construction not a per-level effect. Fitting on the screen itself therefore gives an upper bound on the tone share and a lower bound on the geometry share. Positive control: on the main menu, where the port measures 0.06 percent of pixels differing so geometry is essentially right, a self-fitted LUT closes 70.3 percent, from 9.26 to 2.75. The instrument can collapse a tone-dominated residual. Result: on the title the same self-fitted LUT closes only 32.0 percent, from 10.92 to 7.42. So at most a third of the title s disagreement is tone and at least two thirds is spatial -- content in the wrong place, which is where the rotation lives. The fitted LUT is generous to tone, so the geometry share is if anything larger. Also refutes the idea of a single transferable tone curve. Fitted on the title and applied to the menu it closes 29.7 percent; fitted on the menu and applied to the title it makes things 24 percent WORSE. A curve fitted on a dark flat screen is unconstrained at the bright end -- the menu s populated range is levels 5 to 204 with few bright pixels -- and extrapolating it onto the title s planet and wordmark actively harms. That extends the existing refutation of the single exponent: even a full per-level LUT fails to transfer, so a consumer must not carry a global tone correction. Reach: two screens, one capture each, and the title pairing is the same screen but not the same instant, so the ratio is what is claimed rather than the absolute level. Our render draws the sweeps parent record only, so the geometry share includes both the missing rotation and the missing leaf placement -- both closed by the same decision. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
3.6 KiB
✅ At least two thirds of the title's disagreement is GEOMETRY, not tone
Classification: measured, on committed captures. Answers a question the pending rotation decision needs: how much would drawing the rotation actually buy?
Two separate effects are known to make our renders differ from the console:
- the tone curve — the console renders midtones brighter than we do
(
ui-render-tone-curve.md), and its single-exponent model is refuted above render ≈ 40; - the missing rotation — our blit draws axis-aligned rectangles, so the
title's two tilted light sweeps land as upright bars
(
ui-keyframe-rotation.md).
They are confounded in any whole-frame number. This separates them.
Method, and why the split is an upper bound on tone
A per-level lookup table fitted on a screen is the most general tone model there is: it maps every render level to whatever capture level minimises the error, with no functional form assumed. Whatever such a LUT cannot close is, by construction, not a per-pixel-level effect — it is spatial.
So fitting a LUT on the screen itself and measuring what remains gives an upper bound on the tone share and a lower bound on the geometry share.
The positive control
The method must be able to close a residual that really is tone. On the main menu — where the port measures only 0.06 % of pixels differing, so geometry is essentially right — it does:
| mean abs difference | closed | |
|---|---|---|
| main menu, uncorrected | 9.26 | — |
| main menu + LUT fitted on the main menu | 2.75 | 70.3 % |
✅ The instrument works: a tone-dominated residual collapses by 70 %.
The result
| mean abs difference | closed | |
|---|---|---|
| title, uncorrected | 10.92 | — |
| title + LUT fitted on the title | 7.42 | 32.0 % |
🔴 At most 32 % of the title's disagreement is a tone effect, so at least 68 % is spatial — content in the wrong place. That is where the rotation lives, and it makes the rotation the dominant term by roughly two to one.
⚠️ The same-screen LUT is fitted, so 32 % is generous to tone. The true tone share is smaller and the geometry share larger.
🔴 And a claim this refutes: there is no single transferable tone curve
Fitting on one screen and applying to the other:
| closed | |
|---|---|
| main menu + LUT fitted on the title | +29.7 % |
| title + LUT fitted on the main menu | −24.0 % ✗ |
The menu's curve makes the title worse. A curve fitted on a dark, flat screen is unconstrained at the bright end — the menu's populated range is levels 5–204 with few bright pixels — and extrapolating it onto the title's planet and wordmark actively harms.
⚠️ So "the tone curve" is not one thing that can be measured once and applied.
This extends ui-render-tone-curve.md's refutation of
the single exponent: even a full per-level LUT fails to transfer between
screens. A consumer must not carry a global tone correction.
Reach
- Two screens, one capture each; the title capture is the plate-free frame and our render is at rest, so they are the same screen but not the same instant — a looser pairing than the port's posed comparison, which is why the absolute numbers here (10.92) are larger than its 1.81 % of pixels. ⚠️ The ratio is what this page claims, not the absolute level.
- Our render draws the sweeps' parent record only — the pre-leaf-fix state — so the geometry share measured here includes both the missing rotation and the missing leaf placement. Both are closed by the same decision.