שינוי ההגדרות של תכונות OpenXR לצורך אופטימיזציה של הביצועים

ב-Unity יש כמה תכונות שקשורות לביצועים בהגדרות OpenXR. הפעלת התכונות האלה מאפשרת לאפליקציה לתקשר עם זמן הריצה של Android XR, לקבל התראות על ביצועים ולבצע אופטימיזציה של ביצועי ה-GPU באמצעות רינדור פוביאלי.

דרישות מוקדמות

לפני שממשיכים לפי ההנחיות האלה, חשוב לוודא שביצעתם את הפעולות הבאות:

גישה להגדרות התכונות של OpenXR

כדי לגשת להגדרות התכונה OpenXR של Unity, שבהן אפשר להגדיר את תכונות הביצועים שמפורטות בקטעים הבאים, צריך לפעול לפי השלבים הבאים:

  1. בתפריט הראשי של Unity, לוחצים על Edit > Project Settings (עריכה > הגדרות הפרויקט).
  2. מרחיבים את הקטע XR Plug-in Management (ניהול פלאגינים של XR) ואז לוחצים על OpenXR.
  3. עוברים לקטע OpenXR Feature Groups (קבוצות תכונות של OpenXR).

הפעלת הגדרות הביצועים של XR

הגדרות הביצועים של XR ב-Unity מאפשרות לאפליקציה שלכם להעביר את דרישות הביצועים אל זמן הריצה של Android XR ולקבל התראות על הביצועים.

יתרונות

  • האפליקציה מקבלת התראות מהמערכת כדי לשמור על ביצועים אופטימליים.
  • אתם יכולים לספק רמזים לביצועים לסביבת זמן הריצה של OpenXR.

הפעלת התכונה

בקטע OpenXR Feature Groups שאליו עברתם קודם, מפעילים את האפשרות XR Performance Settings.

הפעלת רינדור ממוקד

רינדור פוביאלי מציע אופטימיזציות סטטיות ואופטימיזציות של מעקב אחרי תנועות העיניים, שמשפרות את הביצועים של ה-GPU. עם זאת, ההטמעה של מעקב העיניים מציעה איכות טובה יותר למשתמשים, כי היא מציגה את האזור שבו הם מסתכלים, ומפחיתה את האיכות של הראייה ההיקפית שלהם. הפעולה הזו מפחיתה באופן משמעותי את עומס העבודה של ה-GPU, תוך שמירה על האיכות החזותית במקומות שבהם היא הכי חשובה.

יתרונות

  • מפחיתה באופן משמעותי את העומס על המעבד הגרפי על ידי עיבוד פחות פרטים בראייה ההיקפית.
  • האזור שבו המשתמש מסתכל נשאר ברור לחלוטין.
  • מאפשר ליצור סצנות מורכבות יותר בלי להפיל פריימים.

הפעלת התכונה

  1. בקטע OpenXR Feature Groups שאליו עברתם קודם, מפעילים את Foveated Rendering.
  2. מגדירים את Foveated Rendering API (ממשק API לעיבוד ממוקד) לערך SRP Foveation (עיבוד ממוקד של SRP).

    הגדרות Unity לרינדור ממוקד

  3. בקטע Enabled Interaction Profiles (פרופילי אינטראקציה מופעלים), מוסיפים את Eye Gaze Interaction Profile (פרופיל אינטראקציה של מעקב אחרי תנועות העיניים).

    הגדרות Unity לפרופילים מופעלים של אינטראקציות

  4. בקטע Permissions Groups, מציינים שצריך לבקש את ההרשאה 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 בנושא רינדור ממוקד.