Version: Unity 6.6 (6000.6)
Language : English
Configure shader optimizations for Meta Quest
Run an XR application

Develop for Meta VR Glasses

Meta VR Glasses are Meta’s latest VR device: a pair of lightweight VR glasses tethered to a compute puck. The VR glasses have built-in eye tracking, and eyes and hands are the primary input.

Meta VR Glasses support OpenXR, which means you can use Unity’s cross-platform XR packages to develop for Meta VR Glasses, and easily target Meta VR Glasses with your existing Unity OpenXR projects.

Unity provides additional features that you can use in your project to take advantage of Meta VR Glasses’ hardware and hands-based input. To learn more about how to design an application for Meta VR Glasses, refer to Meta’s app design documentation.

Tip: To test your Meta VR Glasses project before launch, you can use Meta XR Simulator to test eyes and hands input and field of view.

The following sections outline how to configure a new or existing Unity XR project for Meta VR Glasses. For more information about Meta VR Glasses, refer to Meta’s documentation.

Requirements

To build a project for Meta VR Glasses, your project must meet the following requirements:

Note: You can use a 32-bit binary with the Mono scripting backend for faster iteration in the Unity Editor, but the build you ship must target ARM64 with the IL2CPP backend.

Support eyes and hands for Look and Pinch input

Eyes and hands are the primary input for Meta VR Glasses. Your project should support eyes and hands to target Meta VR Glasses because controllers aren’t included.

Meta VR Glasses use Look and Pinch interaction to enable natural interaction with virtual content. With Look and Pinch, a user looks at an element to target it, then pinches their fingers to select it. For more information, refer to Meta’s documentation.

You can use Meta’s Interaction SDK to implement gaze interactions in your Unity app that are consistent with the gaze interactions used to power Meta VR Glasses’ OS.

Unity’s gaze and hands extensions

Unity’s XR Hands package allows you to access hand tracking data. Unity provides additional Meta-specific extensions that you can use to develop gaze and hands-based experiences for Meta VR Glasses.

The following table outlines the Meta-specific extensions Unity provides for gaze and hand interaction:

Extension Package Description
Meta Hand Tracking Wide Motion Mode OpenXR feature XR Hands Use inference algorithms to estimate hand poses, even when hands are outside the normal camera tracking volume.
Meta Hand Tracking Frequency Hint OpenXR feature XR Hands Request higher frequency hand tracking updates for improved responsiveness but increased jitter. Recommended only for games that require fast hand motion tracking.
Eye gaze interaction (via the Eye Gaze Interaction profile) Unity OpenXR Use real-time eye gaze pose and sample timing data to build gaze-based interactions.
Social eye gaze Unity OpenXR: Meta Use per-eye gaze data to animate avatar eyes and build social presence applications.

Optimize graphics for Meta VR Glasses

Meta VR Glasses have larger on-chip GPU memory than the Meta Quest 3, which means the tiled renderer splits each frame into fewer tiles and improves GPU performance.

The following sections outline the ways you can optimize your project’s graphics to utilize Meta VR Glasses’ larger memory.

Configure foveated rendering

Foveated rendering can provide performance gains in your Meta VR Glasses project.

If you are porting an existing Quest 3 project to Meta VR Glasses, reevaluate the type of foveated rendering your project uses. Because of differences in hardware, fixed foveated rendering (FFR) returns a smaller saving on Meta VR Glasses compared to Quest 3.

On projects that target Meta VR Glasses, you can either use gaze-based foveated rendering or Quad Views. To learn more about the differences, and when to use each optimization, refer to Compare Quad Views and foveated rendering (OpenXR package documentation).

Tip: Always benchmark your app to confirm which technique performs best for your project.

Gaze-based foveated rendering

For projects that target Meta VR Glasses, gaze-based foveated rendering results in better performance than FFR because it provides full resolution at the gaze point, and lower resolution elsewhere.

You can also enable dynamic foveation to adjust the foveation level as GPU load changes, staying within the maximum level you set and without moving the high-resolution area.

To learn how to configure gaze-based and dynamic foveation in Unity, refer to Enable and control foveated rendering.

Enable subsampled layout

You can improve foveated rendering performance with Subsampled layout (OpenXR), which optimizes eye texture sampling.

Quad Views

Quad Views (OpenXR) is a type of foveated rendering that renders peripheral areas at lower resolution and the central focus area at full resolution. Enabling Quad Views reduces render time while maintaining perceived visual quality.

Note: Quad Views can result in a CPU cost. Profile your application to understand whether the GPU gains of Quad Views offset the CPU overhead and result in a net performance gain.

Shader Optimizations for Meta XR

Unity automatically enables shader optimizations for Meta Quest build targets to reduce GPU frame time, shader instruction count, and memory bandwidth, and to improve GPU occupancy.

Unity also provides additional shader optimizations that you can configure in your project.

For more information, refer to Configure shader optimizations for Meta Quest.

Configure Application SpaceWarp

Application SpaceWarp is an optimization for OpenXR that helps applications maintain a high frame rate. It allows the application to render fewer frames while the runtime generates intermediate frames using motion and depth data.

For more information, refer to Application SpaceWarp in OpenXR (OpenXR package documentation).

Enable dynamic resolution

Automatic viewport dynamic resolution controls the resolution of your XR project, and keeps it within a specified range. Enabling automatic viewport dynamic resolution can maintain a stable frame rate and improve graphical performance. For more information, refer to Automatic viewport dynamic resolution (OpenXR package documentation).

Enable dynamic resolution with Adaptive Performance to maintain the target frame rate under GPU load and increase image quality when performance headroom is available.

Enable Adaptive Performance

Enable the Adaptive Performance basic provider in your Meta VR Glasses project to automatically adjust application quality based on device frame timing. For more information, refer to Use Adaptive Performance for OpenXR projects.

Additional resources

Configure shader optimizations for Meta Quest
Run an XR application