調整 OpenXR 功能設定,發揮最佳效能

Unity 在 OpenXR 設定中提供一些效能相關功能。啟用這些功能後,應用程式就能與 Android XR 執行階段通訊、接收效能通知,以及使用凹凸透鏡轉譯功能提升 GPU 效能。

必要條件

按照本指南操作之前,請務必先驗證並完成下列必要條件:

存取 OpenXR 功能設定

請按照下列步驟存取 Unity 的 OpenXR 功能設定,並設定後續章節中列出的效能功能:

  1. 在 Unity 主選單中,依序點選「Edit」>「Project Settings」
  2. 展開「XR Plug-in Management」(XR 外掛程式管理) 部分,然後點選「OpenXR」
  3. 前往「OpenXR 功能群組」部分。

啟用 XR 效能設定

Unity 中的 XR Performance Settings 可讓應用程式將效能需求傳達給 Android XR 執行階段,並接收效能通知。

優點

  • 應用程式會收到系統通知,以維持最佳效能。
  • 您可以向 OpenXR 執行階段提供效能提示。

啟用這項功能

先前瀏覽的「OpenXR Feature Groups」(OpenXR 功能群組) 專區中,啟用「XR Performance Settings」(XR 效能設定)

啟用凹凸感算繪

凹凸透鏡算繪提供靜態和眼球追蹤最佳化功能,可提升 GPU 效能。不過,眼球追蹤技術可呈現使用者注視的區域,同時降低周邊視野的品質,因此能為使用者提供更優質的體驗。這項技術可大幅減少 GPU 工作負載,同時在最重要的地方維持視覺品質。

優點

  • 在周邊視野中減少細節,大幅降低 GPU 工作負載。
  • 讓使用者注視的區域保持清晰。
  • 可讓您建構更複雜的場景,不會遺漏影格。

啟用這項功能

  1. 先前瀏覽的「OpenXR Feature Groups」(OpenXR 功能群組) 專區中,啟用「Foveated Rendering」(凹凸感渲染)
  2. 將「Foveated Rendering API」設為「SRP Foveation」

    凹凸成像的 Unity 設定

  3. 在「已啟用互動設定檔」部分,新增「眼球追蹤互動設定檔」

    已啟用互動設定檔的 Unity 設定

  4. 在「權限群組」部分,指定應要求 android.permission.EYE_TRACKING_FINE 權限。

    Unity 設定,適用於要求 android.permission.EYE_TRACKING_FINE 權限的權限群組

  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 的注視區塊渲染說明文件