调整 OpenXR 功能设置以获得最佳性能

Unity 在其 OpenXR 设置中提供了一些与性能相关的功能。启用这些功能后,您的应用便可与 Android XR 运行时通信、接收性能通知,并使用凹凸透镜渲染优化 GPU 性能。

前提条件

在遵循本指南中的说明之前,请确保您已验证并完成以下前提条件:

访问 OpenXR 功能设置

请按以下步骤操作,访问 Unity 的 OpenXR 功能设置,您可以在其中配置后续部分中概述的性能功能:

  1. 在 Unity 主菜单中,依次点击 Edit > Project Settings
  2. 展开 XR 插件管理部分,然后点击 OpenXR
  3. 前往 OpenXR 功能组部分。

启用 XR 性能设置

Unity 中的 XR 性能设置可让您的应用将性能要求传达给 Android XR 运行时,并接收性能通知。

优势

  • 您的应用会接收系统通知,以保持最佳性能。
  • 您可以向 OpenXR 运行时提供性能提示。

启用此功能

在您之前前往OpenXR 功能组部分中,启用 XR 性能设置

启用注视点渲染

凹凸透镜渲染提供静态优化和眼动追踪优化,可提升 GPU 性能。不过,眼动追踪实现方案通过渲染用户正在注视的区域来提高用户体验,同时降低周边视觉的质量。这样可以显著减少 GPU 工作负载,同时在最需要的地方保持视觉质量。

优势

  • 通过在周边视觉中呈现较少的细节,显著减少 GPU 工作负载。
  • 让用户注视的区域清晰无比。
  • 让您能够构建更复杂的场景,而不会丢帧。

启用此功能

  1. 在您之前前往OpenXR 功能组部分中,启用注视点渲染
  2. 眼动追踪渲染 API 设置为 SRP 眼动追踪

    用于凹凸透镜渲染的 Unity 设置

  3. 已启用的互动配置文件部分中,添加眼控互动配置文件

    已启用交互配置文件的 Unity 设置

  4. 权限组部分中,指定应请求 android.permission.EYE_TRACKING_FINE 权限。

    请求了 android.permission.EYE_TRACKING_FINE 权限的权限组的 Unity 设置

  5. 在运行时开启该功能,并为您的应用设置凹凸渲染级别:

    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.XR;
    
    public class FoveationStarter : MonoBehaviour
    {
      List<XRDisplaySubsystem> xrDisplays = new List<XRDisplaySubsystem>();
    
      void Start()
      {
        SubsystemManager.GetSubsystems(xrDisplays);
        if (xrDisplays.Count == 1)
        {
          xrDisplays[0].foveatedRenderingLevel = 1.0f; // Full strength
          xrDisplays[0].foveatedRenderingFlags
              = XRDisplaySubsystem.FoveatedRenderingFlags.GazeAllowed;
        }
      }
    }
    

如需了解详情,请参阅 Unity 的关于凹凸渲染的文档