تحسين معدّلات اللقطات وتقليل حمل وحدة معالجة الرسومات وتقليل وقت استجابة العرض باستخدام إعدادات Android XR Extensions

أجهزة XR المعنيّة
تساعدك هذه الإرشادات في إنشاء تجارب لهذه الأنواع من أجهزة XR.
سماعات الرأس بنظام الواقع الممتد
نظارات الواقع الممتد السلكية

توفّر Unity بعض الميزات المتعلّقة بالأداء والمخصّصة لنظام التشغيل Android XR، والتي تتطلّب حزمة Android XR Extensions. فعِّل هذه الميزات لتحسين عدد اللقطات في الثانية وتقليل حِمل وحدة معالجة الرسومات من خلال ميزتَي Spacewarp و"جمع عيّنات جزئية في Vulkan"، ولتقليل وقت استجابة العرض المتتبّع باستخدام ميزة "التحميل المتأخر".

المتطلّبات الأساسية

قبل اتّباع هذه الإرشادات، تأكَّد من التحقق من المتطلبات الأساسية التالية واستيفائها:

تفعيل ميزة Spacewarp

تُعدّ URP Application Spacewarp عملية لتحسين OpenXR تساعد في الحفاظ على مستوى عالٍ لعد اللقطات في الثانية من خلال توليد اللقطات البديلة بطريقة اصطناعية. تستخدم هذه التقنية متجهات الحركة وبيانات العمق من اللقطات السابقة لتوقّع موضع انتقال وحدات البكسل، ما يقلّل من استهلاك الطاقة وقدرة المعالجة.

المزايا

  • تقلّل من حجم المعالجة الخاصة بالعرض التي تتحملها وحدة معالجة الرسومات من خلال توليد لقطات بديلة بطريقة اصطناعية.
  • تقلّل بشكل كبير من قدرة المعالجة واستهلاك الطاقة.
  • تستخدم إعادة العرض لتقليل وقت الاستجابة بين حركات المستخدم وعرضها على الشاشة.

تفعيل هذه الميزة

  1. من القائمة الرئيسية في Unity، انقر على تعديل (Edit) > إعدادات المشروع (Project Settings).
  2. وسِّع قسم إدارة المكوّنات الإضافية لتقنيات الواقع الممتد (R Plug-in Management).
  3. اختَر علامة التبويب التي تتوافق مع جهاز XR الحالي.
  4. انتقِل إلى قسم مجموعات ميزات OpenXR (OpenXR Feature Groups).
  5. في قسم جميع الميزات (All Features)، فعِّل Application SpaceWarp.

    إعدادات Unity لـ Spacewarp

تفعيل "جمع العيّنات الجزئية" في Vulkan

تتيح ميزة "جمع العيّنات الجزئية" في Vulkan إنشاء الصور وأخذ عينات منها بكثافات متغيرة باستخدام "خرائط كثافة الأجزاء" (Fragment Density Maps). تتيح ميزة Vulkan عرض أجزاء مختلفة من الشاشة ونقلها إلى الذاكرة بدرجات دقة مختلفة، ما يفيد بشكل خاص في العرض البؤري الذي يمكن أن تستخدم فيه المناطق المحيطية درجة دقة أقل.

المزايا

  • توفّر تحسّنًا متفاوتًا عند دمجه مع تقنية "العرض البؤري"، حسب شكل الجهاز.
  • تقلّل من خشونة الحواف في المناطق المحيطية من خلال فلترة ثنائية الخط.
  • تتيح هذه الميزة عرض المحتوى بكفاءة بمعدل متغير في أجزاء مختلفة من الشاشة.

تفعيل هذه الميزة

  1. من القائمة الرئيسية في Unity، انقر على تعديل (Edit) > إعدادات المشروع (Project Settings).
  2. وسِّع قسم إدارة المكوّنات الإضافية لتقنيات الواقع الممتد (XR Plug-in Management)، ثم انقر على OpenXR.
  3. انقر على رمز الترس بجانب Android XR (الإضافات): إدارة الجلسات (Android XR (Extensions): Session Management).
  4. فعِّل جمع العيّنات الجزئية (Vulkan) (Subsampling (Vulkan)).

    إعدادات Unity لجمع العيّنات الجزئية في Vulkan

تفعيل ميزة التحميل المتأخر

التحميل المتأخر هي تقنية تقلّل من التأخير بين حركة جسم المستخدم وتغيير الصورة الظاهرة على الشاشة. ويسمح بتعديل وضعية الرأس في وقت متأخر من عملية إنشاء اللقطات، ما يحسّن من راحة المستخدمين وعدد اللقطات في الثانية الذي يرونه في تطبيقات الواقع الممتد. ويتم ذلك من خلال تقليل وقت استجابة الإدخال بمقدار يقارب وقت عرض لقطة بالكامل.

المزايا

  • يقلّل بشكل كبير من وقت الاستجابة من الحركة إلى ظهور الصورة (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);
    }
}