Loading lessons...
XR Graphics & Foveated Rendering
XR Graphics & Foveated Rendering
VR and AR headsets require high resolutions and frame rates (90Hz to 120Hz) to prevent motion sickness. Unity provides graphics options specifically for XR workloads.
Stereo Rendering Modes
Rendering for VR requires drawing the scene twice (once for each eye). You configure this in Project Settings -> XR Plug-in Management -> OpenXR:
- Multi-pass: Draws the entire scene twice sequentially. High CPU overhead due to doubling draw calls.
- Single-pass Instanced: Draws both eyes in a single render pass using GPU instancing. Reduces CPU draw calls by half.
Foveated Rendering
Foveated Rendering reduces GPU overhead by rendering peripheral areas of the screen at a lower resolution than the center:
- Fixed Foveated Rendering (FFR): The center of the screen is rendered at full quality, while the outer borders are blurred.
- Eye-Tracked Foveated Rendering: Tracks the player's pupils in real-time, rendering only the exact spot the player is looking at in high resolution.
Late Latching
Late Latching is a rendering feature where the CPU updates the camera transform values as late as possible right before executing GPU draw calls, reducing tracking latency to prevent motion sickness.
TL;DR
- Single-pass Instanced rendering cuts CPU draw calls in half by drawing both eyes in one pass.
- Foveated rendering optimizes GPU load by lowering resolution at screen borders.
- Eye-Tracked Foveated rendering moves high-resolution zones dynamically based on gaze.
- Late Latching reduces VR head-tracking latency.