Human photoreceptor density drops sharply away from the fovea: cone density near the visual axis is roughly 15× higher than 20° into the periphery (Curcio et al. 1990). Gaze-contingent foveated rendering — used by Meta Quest Pro, PSVR2 and Varjo headsets with eye tracking — exploits this by rendering full detail only where the eye actually looks, at a fraction of the shading cost.
θ(p) = angle between eye→p and eye→gaze (retinal eccentricity, degrees)
scale(θ) = 1 if θ ≤ θ_fovea
scale(θ) = floor + (1−floor) / (1 + ((θ−θ_fovea)/θ_half)²) otherwise
pixel fraction = mean(scale²) (resolution scales both screen axes)
GPU speedup = 1 / pixel fraction
- Foveal radius — angular size of the always-full-resolution disk around the gaze point, matching the ~5–8° high-acuity foveal region of the human retina.
- Falloff steepness — the eccentricity at which density has dropped halfway to the floor; a real Curcio-style cone density curve sits around 10–15°.
- Peripheral resolution floor — GPUs never render at exactly 0 resolution; a floor (commonly 10–25% of native) keeps peripheral motion and contrast visible and avoids popping when the eye saccades.
- Eye relief — the physical eye-to-lens/display distance in a real headset (roughly 25–90mm across devices). Every tile's eccentricity is the angle subtended at the eye, so the same panel geometry produces a wider spread of angles — a more aggressive falloff across the visible field — the closer the eye sits.
- Auto-saccade — replays a sequence of rapid eye jumps (real saccades complete in 20–200 ms) so you can see the foveal disk relocate instantly across the display, the way eye-tracked VR hardware actually drives the effect.
The bottom-left panel plots scale(θ) directly from the live parameters, and the bottom-right panel is a top-down schematic of the eye behind the panel, showing the actual angle the gaze ray subtends versus the foveal cone half-angle. The two stat readouts — rendered-pixel fraction and GPU shading speedup — are computed from the same scale(θ) field driving the tile grid, not decorative numbers.