Dostosowywanie ustawień funkcji OpenXR w celu uzyskania optymalnej wydajności

Unity udostępnia w ustawieniach OpenXR niektóre funkcje związane z wydajnością. Włącz te funkcje, aby umożliwić aplikacji komunikację ze środowiskiem wykonawczym Androida XR, otrzymywanie powiadomień o wydajności i optymalizowanie wydajności GPU za pomocą renderowania z ogniskowaniem.

Wymagania wstępne

Zanim zaczniesz korzystać z tych wskazówek, sprawdź, czy spełniasz te wymagania wstępne:

Dostęp do ustawień funkcji OpenXR

Aby uzyskać dostęp do ustawień funkcji OpenXR w Unity, gdzie możesz skonfigurować funkcje wydajności opisane w kolejnych sekcjach:

  1. W menu głównym Unity kliknij Edit > Project Settings (Edytuj > Ustawienia projektu).
  2. Rozwiń sekcję XR Plug-in Management (Zarządzanie wtyczkami XR), a potem kliknij OpenXR.
  3. Otwórz sekcję Grupy funkcji OpenXR.

Włącz ustawienia wydajności XR

Ustawienia wydajności XR w Unity umożliwiają aplikacji przekazywanie wymagań dotyczących wydajności do środowiska wykonawczego Androida XR i otrzymywanie powiadomień o wydajności.

Zalety

  • Aplikacja otrzymuje powiadomienia systemowe, aby utrzymać optymalną wydajność.
  • Możesz przekazywać wskazówki dotyczące wydajności do środowiska wykonawczego OpenXR.

Włącz tę funkcję

W sekcji Grupy funkcji OpenXR, do której przejdziesz, włącz Ustawienia wydajności XR.

Włącz renderowanie z ogniskowaniem

Renderowanie z ogniskowaniem wzroku oferuje optymalizacje statyczne i oparte na śledzeniu wzroku, które zwiększają wydajność procesora graficznego. Jednak implementacja śledzenia wzroku zapewnia użytkownikom lepszą jakość, ponieważ renderuje obszar, na który patrzą, a jednocześnie obniża jakość widzenia peryferyjnego. Znacznie zmniejsza to obciążenie procesora graficznego przy zachowaniu jakości obrazu w najważniejszych obszarach.

Zalety

  • Znacznie zmniejsza obciążenie procesora graficznego, renderując mniej szczegółów w widzeniu peryferyjnym.
  • Zapewnia krystaliczną czystość obrazu w miejscu, na które patrzy użytkownik.
  • Umożliwia tworzenie bardziej złożonych scen bez utraty klatek.

Włącz tę funkcję

  1. W sekcji Grupy funkcji OpenXR, do której przejdziesz, włącz Renderowanie z ogniskowaniem.
  2. Ustaw Foveated Rendering API na SRP Foveation.

    Ustawienia Unity dotyczące renderowania z ogniskowaniem

  3. W sekcji Włączone profile interakcji dodaj Profil interakcji za pomocą wzroku.

    Ustawienia Unity dla włączonych profili interakcji

  4. W sekcji Grupy uprawnień określ, że należy poprosić o uprawnienie android.permission.EYE_TRACKING_FINE.

    Ustawienia Unity dla grup uprawnień z wymaganym uprawnieniem android.permission.EYE_TRACKING_FINE

  5. Włącz tę funkcję w czasie działania i ustaw poziom renderowania z ogniskowaniem dla swojej aplikacji:

    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;
        }
      }
    }
    

Więcej informacji znajdziesz w dokumentacji Unity na temat renderowania z fiksacją.