Version: 2022.3
XR 中的通用渲染管线兼容性
Single-pass instanced rendering and custom shaders

Stereo rendering

VR and most MR devices require rendering the Unity scene in stereo. Unity XR supports two stereo render modes:

  • Multi-pass: in this mode, Unity performs a render pass for each eye. Some parts of the render loop are shared between the two passes, so multi-pass rendering is faster than rendering the scene with two unique cameras. Multi-pass mode provides the widest compatibility with existing shaders and rendering utilities, but is slower than single pass instanced mode.
  • Single-pass instanced: in this mode, Unity renders the scene in a single pass using instanced draw calls. This mode greatly decreases CPU usage and slightly decreases GPU usage compared to the multi-pass mode.
  • Multiview: A variation of single-pass instanced rendering supported by some OpenGL and OpenGL ES devices. This option replaces single-pass instanced when available.

Note: The earlier technique of rendering the scene into a double-wide texture using a single render pass is no longer available.

See How to maximize AR and VR performance with advanced stereo rendering for background information. Single-pass instanced stereo rendering is now available on most VR platforms.

Set the render mode

You can find the Render mode setting under XR Plug-in Management in Project Settings. Each XR provider plug-in provides its own setting, if supported.

To set a render mode:

  1. Open Project Settings (menu: Edit > Project Settings).

  2. Expand the XR Plugin Management section, if necessary.

  3. Select the settings page for the relevant provider plug-in.

  4. Choose a mode from the list.

    Render mode options in the MockHMD provider plug-in

Note: Some plug-ins name the setting Stereo Rendering Mode.

Single-pass instanced render mode support

Single-pass instanced render mode is supported on the following platforms and devices:

  • 支持 Multiview 扩展的 Android 设备
  • HoloLens
  • PlayStation VR
  • PC devices (tethered):
  • For DirectX on desktop, the GPU must support Direct3D 11 and the VPAndRTArrayIndexFromAnyShaderFeedingRasterizer extension.
  • 对于桌面平台上的 OpenGL,GPU 必须支持以下扩展之一:
    • GL_NV_viewport_array2
    • GL_AMD_vertex_shader_layer
    • GL_ARB_shader_viewport_layer_array

If you set the Render Mode to Single Pass Instanced when that mode is not supported, then rendering falls back to multi-pass mode.

Note: Unity doesn’t support single-pass stereo instancing in the built-in, legacy render pipeline when using deferred rendering.

XR 中的通用渲染管线兼容性
Single-pass instanced rendering and custom shaders