Mip LOD is not the footprint. Look at a grazing checker.
The mipmaps note already photographed the leftover softness: isotropic band-limits to the major axis and over-blurs the minor. That note stopped at one sentence. This one owns the Jacobian, the ellipse axes, and a lab-honest anisotropic sample — CPU elliptical weighted average — that we can actually run on OSMesa / llvmpipe.
Hero, on a constructed science footprint , , : AC power is 979.532 under nearest (no mip), 112.848 under isotropic mip, 98.751 under CPU-EWA. Do not sell that as “EWA is sharper overall.” Iso’s leftover AC is box-mip sinc lobes along the major axis. The theorem is minor-axis energy : iso 4.244 → EWA 8.478. EWA keeps more legal detail on the short axis. That is the point.
Assertions on this run: 41 pass / 0 fail. Science mag MAE . Presentation mag MAE . Photo hero MAE(iso, EWA) on the hallway . llvmpipe GL AF vs MAE — a small delta, labeled NOT hardware 16× AF, not the lesson hero.
How it presents
Same floor, three filters. Stimulus is a CPU-authored black/white checker, , 64 cells across the floor. Walls and ceiling are flat gray. No on the HUD.

Walk the three panels:
- NO-MIP. Major-axis frequencies fold. Checks crawl, sparkle, moiré toward the vanishing point. Same sentence as the mipmaps Cornell floor, now with a known elliptical footprint waiting in the lab.
- ISO-MIP. Fold mostly gone. The floor is a gray field of over-blur. band-limited the short axis as if it were the long one. That is the leftover softness the mipmaps note named and did not close.
- CPU-EWA. Major axis still limited (no crawl). Minor axis keeps the checks. Softness shrinks without reintroducing the fold.
MAE(iso, EWA) on this frame is . Why not Mesa AF in the hero column: on this rasterizer GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT=16 is a software detail; the same graze with GL vs is only MAE . That is not an unmistakable iso-vs-aniso lesson. The 3-up therefore uses CPU-EWA.
Near field first — magnification must still match.

If “AF” looked sharper here, the article would be broken. Every probed floor pixel has .
Then the photograph of the theorem — same unproject floor, checker texture, known CPU Jacobian:

Two regimes, never mixed — in a room or on a zone-plate:
- Magnification (ellipse semi-axes and ): reconstruction. Isotropic and anisotropic must match. Science path: , MAE(ISO-MIP, CPU-EWA) , identical (1177.19). Presentation: the near-field frame above, MAE .
- Anisotropic minify (one axis , the other closer to 1): ellipse, not a scalar . This is the article.
Software raster does not have to flicker. Softness at a locked pose is the wrong footprint, not art direction.
Why: Jacobian, ellipse, over-blur
UV Jacobian (texel units)
in texels, in pixels:
Science path: known from the affine UV construction, or from a locked perspective floor whose Jacobian is computed on the CPU from the projected quad. Do not trust llvmpipe dFdx/dFdy as the science source. Photograph path may use the sampler; those frames print a=n/a.

Isotropic GL-style scalars (continuity with mipmaps)
Isotropic LOD band-limits both axes to . When , the minor axis is over-blurred. That is the leftover softness on the mipmaps hallway, and the middle panel of the checker graze.
An isotropic alternate is still the wrong ellipse. One sentence, no extra frame.
Footprint ellipse
The pixel’s preimage in UV is the image of the unit pixel under . Semi-axes from the SVD of (eigendecomposition of ):
Ellipse orientation = major singular vector in UV. Draw this ellipse on the texture. This is the unique non-generic artifact.
Hero construction: . SVD: , , , . A sheared copy at sits beside it so AF is not mistaken for “blur less in .”

The Jacobian field on the unproject floor — , not a rainbow for its own sake. Same camera family as the theorem photograph.

Isotropic vs anisotropic LOD
The gap
is exactly the over-blur in mip levels along the minor axis. At the constructed hero, : three extra mip levels of softness on the short axis, for no sampling reason. Eccentricity clamp grows the minor axis (more blur, fewer taps) when . It does not change the hero .
Lab-honest anisotropic sample (CPU EWA-ish)
For each pixel: take the UV ellipse from the known Jacobian, clamp eccentricity to , choose a mip level from the minor axis (), and accumulate a Gaussian weight over the ellipse in that level and the next. Under mag ( and ) it falls back to bilinear L0, same as iso. This is our reference — not Heckbert’s production filter, not OpenGL AF, not a claim about Mesa’s sampler. Do not match it against NVIDIA/AMD/Intel texel-fetch counts or LOD curves.
Zone-plate (reuse, do not re-litigate)
Texture POT, disk-masked Fresnel chirp, same authorship as mipmaps:
Instantaneous frequency rises with radius, so an elliptical minify has a known major-axis fold and a known minor-axis remainder.

Unique artifact: the ellipse, then the spectrum
Constructed minify, , , , three filters, three spectra, shared scale. Science is glReadPixels(..., GL_FLOAT) from an RGBA32F FBO, interior crop, mean-subtract, separable Hann, unnormalized radix-2 DFT. Power . Do not FFT the checker photographs.
Nearest, no mip — major-axis fold.


Isotropic mip — fold gone, minor over-blur.


CPU-EWA — major limited, minor kept.


The non-image artifact — overlay and a 1-D cut along the minor axis:

Quote . Do not quote as sharpness.
Constructed , , crop 256, padded=1, clear :
| filter | |||
|---|---|---|---|
NEAREST no-mip |
979.532 | 40.233 | |
ISO-MIP |
112.848 | 4.244 | |
CPU-EWA |
98.751 | 8.478 |
Nearest is hot from fold. Iso vs EWA on total AC can go either way, because EWA also band-limits the major axis: here EWA’s is lower than iso’s (98.751 vs 112.848). Iso’s leftover AC is the box-mip sinc along the major axis. is a radial-mean ratio of outer annuli — even smaller, and not the claim.
is the sum of on bins with (vertical frequencies = minor axis of ). Iso 4.244 → EWA 8.478 is . That, the shared-scale pair, and the 1-D cut, are the claim. Do not invent a “16× sharpness score.” Do not hang on the checker hallway.
Mag control ():
| filter | MAE | ||
|---|---|---|---|
ISO-MIP |
1177.190 | 486.292 | 0 |
CPU-EWA |
1177.190 | 486.292 | 0 |
Identical. If EWA invented detail under mag, the kernel would be wrong.
When ( inside a 256 crop), the framebuffer is cleared to — the zone-plate mean — so the pad is zeros after mean-subtract. A hard rectangular cut would have been a 2-D sinc that owns every filter.
The Hann window used on every crop has its own spectrum, so its cross is not mistaken for aliasing:

Controls
Magnification: aniso must not invent detail
Science mag, , three-up nearest / iso / EWA. The asserted MAE is ISO-MIP vs CPU-EWA (both bilinear L0 when ). MAE , both sides.

The near-field checker photograph is that control in a room.
Eccentricity ladder
Fixed minor , , . Top row: isotropic box-mip, — the busy high-aniso look is box-mip sinc lobes, not fold. Bottom row: CPU-EWA, . At the two rows match (circle, no ellipse). Divergence grows with .

llvmpipe AF — honesty frame, not the hero
Same checker graze as the hallway, real sampler, GL_LINEAR_MIPMAP_LINEAR plus GL_TEXTURE_MAX_ANISOTROPY_EXT vs . Extension is present. They differ (MAE ). The delta is small. Far-band std is vs . This is a photograph of Mesa 25.0.7 llvmpipe’s software AF — not a hardware quality table, not “16× hardware AF,” and not the lesson. The article stands on CPU-EWA.

What this box actually measured
Host: OSMesa, Mesa 25.0.7-2+deb13u1, llvmpipe (LLVM 19.1.7, 256 bits). FBO RGBA32F, 8-bit fallback not hit, no sRGB, no MSAA on the science FBO. GL_EXT_texture_filter_anisotropic yes, max . Assertions: 41 pass / 0 fail, including DFT self-test, SVD of , mag MAE , EWA iso, photo hero MAE , and the llvmpipe AF delta .
Can claim: on this OSMesa / llvmpipe build, a constructed elliptical minify of an authored chirp with isotropic mip over-blurs the minor axis relative to a CPU ellipse-aware reference that band-limits using the minor singular value. We can draw the UV footprint ellipse from a CPU Jacobian and show . Mag-control frames where match across iso / EWA. The checker graze is how a non-lab reader sees the sentence without .
Cannot claim: NVIDIA / AMD / Intel hardware AF quality, number of taps, LOD bias curves, or bandwidth. That MAX_ANISOTROPY_EXT=16 on llvmpipe equals a discrete GPU’s 16× mode. That dFdx/dFdy on llvmpipe equal hardware derivatives. That the CPU EWA reference is Heckbert’s production filter or OpenGL’s AF. Discrete GPU metrics, occupancy, or “this is how the hardware works.”
Honesty, short:
- CPU EWA is not Heckbert and is not OpenGL AF. Gaussian weights, mip from the minor singular value, eccentricity clamp .
MAX_ANISOTROPY_EXT = 16on this llvmpipe is a software detail. The AF frame photographs vs ; they differ by MAE . Not a hardware-AF quality table.- Box mip-gen is not an ideal LPF. A box in space is a sinc in frequency. Residual major-axis lobes in the iso column are the same honesty as mipmaps — do not hide them and blame AF.
dFdx/dFdyon llvmpipe are not the science Jacobian. Science is CPU.- is not a “16× sharpness score.” Report and the 1-D minor-axis cut.
- Pad when . Clear color = zone-plate mean.
- PNG is visualization. Science is the float crop + DFT. Do not FFT the checker photographs.
- SSAA on the photo path is geometric edge AA. It is not a substitute for an anisotropic footprint.
Pin the hallway as the presentation. Pin the foreshorten L/R as the theorem photo. Pin the iso/EWA spectrum pair plus the minor-axis cut as the science theorem. The AF honesty frame is not a cover. The formula is the caption. The ellipse is why the isotropic floor went to mud.