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.
- 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 two live readouts on the right — rendered-pixel fraction and GPU shading speedup — are computed directly from the same scale(θ) field driving the visualization, not decorative numbers: they show why foveated rendering is the single biggest per-frame GPU cost saver in modern eye-tracked VR.