Unity מספקת כמה תכונות שקשורות לביצועים וספציפיות ל-Android XR, ונדרש בשבילן חבילת Android XR Extensions. כדי לשפר את קצב הפריימים ולהפחית את העומס על ה-GPU, אפשר להפעיל את התכונות האלה באמצעות spacewarp ודגימת משנה של Vulkan. כדי להפחית את זמן האחזור של העיבוד המעקב, אפשר להשתמש ב-late latching.
דרישות מוקדמות
לפני שממשיכים לפי ההנחיות האלה, חשוב לוודא שביצעתם את השלבים הבאים:
- משלימים את כל השלבים של הגדרת הפרויקט ב-Unity.
- מייבאים את חבילת Android XR Extensions for Unity.
הפעלת תכונת SpaceWarp
URP Application Spacewarp הוא אופטימיזציה של OpenXR שעוזרת לשמור על קצב פריימים גבוה על ידי סינתזה של כל פריימ אחר. הטכניקה הזו משתמשת בווקטורים של תנועה ובנתוני עומק מפריימים קודמים כדי לחזות לאן הפיקסלים צריכים לנוע, וכך מצמצמת את כוח החישוב ואת השימוש באנרגיה.
יתרונות
- מפחית את עומס העבודה של רינדור GPU על ידי סינתזה של פריימים חלופיים.
- הוא מפחית באופן משמעותי את כוח החישוב ואת צריכת האנרגיה.
- משתמש בהקרנה מחדש כדי לצמצם את זמן האחזור בין תנועות המשתמש לבין עדכוני התצוגה.
הפעלת התכונה הזאת
- בתפריט הראשי של Unity, לוחצים על Edit > Project Settings (עריכה > הגדרות הפרויקט).
- מרחיבים את הקטע XR Plug-in Management.
- בוחרים את הכרטיסייה שמתאימה למכשיר ה-XR הנוכחי.
- עוברים לקטע OpenXR Feature Groups (קבוצות תכונות של OpenXR).
בקטע All Features (כל התכונות), מפעילים את האפשרות Application SpaceWarp (התכונה SpaceWarp באפליקציה).
הפעלת דגימת משנה של Vulkan
התכונה Vulkan Subsampling מאפשרת ליצור תמונות ולדגום אותן בצפיפויות משתנות באמצעות Fragment Density Maps. התכונה הזו של Vulkan מאפשרת לעבד אזורים שונים במסך ולהעביר אותם לזיכרון ברזולוציות שונות. זה שימושי במיוחד לעיבוד פוביאלי, שבו אפשר להשתמש ברזולוציה נמוכה יותר באזורים היקפיים.
יתרונות
- השיפור משתנה כשמשלבים את התכונה עם רינדור פוביאלי, בהתאם לגורם הצורה.
- הפחתת ה-aliasing באזורים היקפיים באמצעות סינון דו-ליניארי.
- הגדרה שמאפשרת עיבוד יעיל של קצב פריימים משתנה באזורים שונים במסך.
הפעלת התכונה הזאת
- בתפריט הראשי של Unity, לוחצים על Edit > Project Settings (עריכה > הגדרות הפרויקט).
- מרחיבים את הקטע XR Plug-in Management (ניהול פלאגינים של XR) ולוחצים על OpenXR.
- לוחצים על סמל גלגל השיניים לצד Android XR (Extensions): Session Management (Android XR (תוספים): ניהול סשנים).
מפעילים את האפשרות Subsampling (דגימת משנה) (Vulkan).

הפעלת הצמדה מאוחרת
השהיה נמוכה היא טכניקה שמצמצמת את העיכוב בין התנועה הפיזית של המשתמש לבין השינוי החזותי שמתקבל בתצוגה. היא מאפשרת לעדכן את תנוחת הראש בשלב מאוחר בצינור ליצירת פריים, וכך לשפר את הנוחות ואת קצב הפריימים הנתפס של אפליקציות ה-XR. התכונה הזו מצליחה לצמצם את השהיית הקלט כמעט בזמן של פריים שלם.
יתרונות
- הוא מקצר באופן משמעותי את זמן האחזור של Motion-to-Photon (MTP).
- משפר את הנוחות של המשתמשים ומפחית את הסיכון לבחילת נסיעה.
- שיפור היציבות והדיוק.
הפעלת התכונה הזאת
כדי להפעיל את התכונה 'הצמדה מאוחרת', מפעילים את התכונה בזמן הריצה של האפליקציה:
private XRDisplaySubsystem xrDisplay;
private XRDisplaySubsystem.LateLatchNode lateLatchNode = XRDisplaySubsystem.LateLatchNode.Head;
void Start()
{
List<XRDisplaySubsystem> xrDisplaySubsystems = new();
SubsystemManager.GetSubsystems(xrDisplaySubsystems);
if (xrDisplaySubsystems.Count >= 1)
{
xrDisplay = xrDisplaySubsystems[0];
}
}
void Update()
{
if (xrDisplay != null)
{
transform.position += new Vector3(Mathf.Epsilon, 0, 0);
Quaternion rot = transform.rotation;
rot.x += Mathf.Epsilon;
transform.rotation = rot;
xrDisplay.MarkTransformLateLatched(transform, lateLatchNode);
}
}