Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Using Single Pass Stereo Rendering and Stereo Instancing

Single Pass Stereo and Stereo Instancing are rendering techniques available for Oculus devices running on Android and PC, respectively.

Single Pass Stereo rendering (also known as Multiview rendering on OpenGL/Vulkan) is a rendering feature for Oculus devices running on Android. It is available with the Unity version 5.6.

In a typical OpenGL stereo rendering, each eye buffer must be rendered in sequence, doubling application and driver overhead. With Single Pass Stereo rendering, objects are rendered once to the left eye buffer, then duplicated to the right buffer automatically with appropriate modifications for vertex position and view-dependent variables such as reflection. It primarily reduces CPU usage, and the GPU performance is unchanged largely. If your application is CPU-bound or draw call bound, we strongly recommend using Single Pass Stereo rendering to improve performance.

Pre-requisites

  • OpenGL ES 3 or Vulkan

Setting Single Pass Stereo Rendering

Depending upon the Unity version that you are using, the navigation for setting Stereo Rendering changes.

  1. In the menu, go to Edit > Project Settings.
  2. Depending upon the Unity version that you are using, follow the navigation steps:

    For Unity versions that support built-in XR (Unity versions 2019.3 or earlier):

    1. From the Project Settings window, select Player, and then select the Android tab to open Android settings.
    2. Expand XR Settings.
    3. Ensure the Virtual Reality Supported check box is selected.
    4. In Stereo Rendering Mode, select Single Pass to enable Single Pass Stereo rendering.

    For Unity versions that support XR Plugin framework (Unity versions 2019.3 and later):

    1. From the Project Settings window, expand XR Plugin Management, and then select Oculus.

      Note: If you cannot view Oculus under XR Plugin Management, it means that you’ve not installed the Oculus XR plugin. Install the Oculus XR plugin to enable the XR support for your app.

    2. Select the Android tab to open Android settings.
    3. In Stereo Rendering Mode, select Multiview to enable Single Pass Stereo rendering.

Note: Some Unity versions lists Single Pass as Multiview.

Additional technical documentation

To understand Single Pass Stereo rendering in detail, go to Single Pass Stereo Rendering and Single Pass Stereo Rendering for Android topics in Unity’s documentation.

For additional technical information about the underlying framework that makes Single Pass Stereo rendering possible in Oculus Integration for Unity, go to the Multiview topic.

Stereo Instancing (also known as Single Pass Instanced) is a rendering feature for Oculus devices running on PC. It is available with the Unity version 5.6.

In a typical stereo rendering, each eye buffer must be rendered in sequence, doubling application and driver overhead. With Stereo Instancing, objects are rendered once to the left eye buffer, then duplicated to the right buffer automatically with appropriate modifications for vertex position and view-dependent variables such as reflection. It primarily reduces CPU usage, and the GPU performance is unchanged largely. If your application is CPU-bound or draw call bound, we strongly recommend using Single Pass Instanced rendering to improve performance.

Pre-requisites

  • DirectX 11

Setting Stereo Instancing

  1. In the menu, go to Edit > Project Settings.
  2. Depending upon the Unity version that you are using, follow the navigation steps:

    For Unity versions that support built-in XR (Unity versions 2019.3 or earlier):

    1. From the Project Settings window, select Player, and then select the PC, Mac, and Linux tab to open Windows settings.
    2. Expand XR Settings.
    3. Ensure the Virtual Reality Supported check box is selected.
    4. In Stereo Rendering Mode, select Single Pass Instanced to enable Stereo Instancing.

    For Unity versions that support XR Plugin framework (Unity versions 2019.3 and later):

    1. From the Project Settings window, expand XR Plugin Management, and then select Oculus.

      Note: If you cannot view Oculus under XR Plugin Management, it means that you’ve not installed the Oculus XR plugin. Install the Oculus XR plugin to enable the XR support for your app.

    2. Select the PC, Mac, and Linux tab to open Windows settings.
    3. In Stereo Rendering Mode, select Single Pass Instanced to enable Stereo Instancing.

For additional information, go to the Single Pass Instanced rendering topic in the Unity’s documentation.