أخبار المنتجات

تحسين الأداء على أجهزة Android XR باستخدام Unity

مدّة القراءة: 6 دقائق
عرض الملف الشخصي الخاص بـ "لوك هوبكينز"
Luke Hopkins مهندس علاقات المطوّرين، Android

سماعة الرأس Samsung Galaxy XR متاحة الآن، وهي تعمل بنظام التشغيل Android XR. منشور المدوّنة هذا هو جزء من أسبوع Android XR Spotlight، حيث نقدّم موارد، مثل منشورات المدوّنات والفيديوهات ونماذج الرموز البرمجية وغيرها، وكلّها مصمّمة لمساعدتك في التعلّم والإنشاء وإعداد تطبيقاتك لنظام التشغيل Android XR.  

أطلقت Samsung هذا الأسبوع سماعة Galaxy XR التي تم تصميمها بالتعاون مع Google وQualcomm. هذه فترة رائعة للمطوّرين، وأردنا مساعدتك في تحقيق أفضل أداء ممكن لتطبيقك المتوافق مع تقنيات الواقع الممتد.

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

في هذا الدليل، سنشرح لك عمليات التحسين الأساسية للأداء التي عليك معرفتها لتطوير تطبيقات Android XR. ستتعرّف على الميزات التي تحقّق أكبر تحسينات في الأداء، ومتى يجب استخدامها، وكيف تعمل معًا لمساعدتك في تحقيق عدد اللقطات في الثانية المستهدَفة.

إليك ما نسعى إلى تحقيقه: 

  • الحد الأدنى: 72 لقطة في الثانية (جزء من إرشادات جودة التشغيل)
  • اختياري: 90 لقطة في الثانية مع 11 ملي ثانية لكل لقطة

لمزيد من المعلومات حول أهمية الحفاظ على معدّل لقطات مرتفع، اطّلِع على إرشادات الأداء.   

ميزات الأداء الخاصة بالواقع المُمتد

سنبدأ بتغطية ميزتَين متعلّقتَين بالأداء ومخصّصتَين للواقع الممتد، وهما "العرض البؤري" و"جمع عيّنات جزئية في Vulkan".

العرض البؤري

التقديم البؤري هو تحسين يتضمّن وضعَين. الأول هو الوضع الثابت الذي يعرض مركز الشاشة بدقة أعلى، ويقلل الدقة تدريجيًا كلما نظرت إلى الخارج.

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

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

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

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

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

عند استخدامها مع تقنية "التركيز على منطقة النظر"، تمنحك تقنية Vulkan Subsampling أداءً إضافيًا بمقدار 0.5 ملي ثانية. ويساعد أيضًا في تنعيم الحواف المتعرّجة في مجال رؤيتك المحيطي، ما يجعل الصورة تبدو أكثر وضوحًا بشكل عام.

على سبيل المثال، في لعبة محاكاة الطيران التي يركّز فيها المستخدمون على الأدوات وعناصر التحكّم، يعني الجمع بين العرض البؤري والتقليل من دقة العرض في Vulkan أنّ عناصر التحكّم التفصيلية يتم عرضها بوضوح، ولكن هيكل قمرة القيادة المحيطي يستخدم موارد أقل. قد لا يبدو هذا الوقت الإضافي كبيرًا، لكنّه يتيح إضافة عنصر تفاعلي آخر أو تجنُّب فقدان اللقطات خلال اللحظات المكثّفة.

ميزات وحدة معالجة الرسومات للمشاهد المعقّدة

بالإضافة إلى ميزتَي Foveated Rendering وVulkan Subsampling، هناك بعض ميزات وحدة معالجة الرسومات التي تقلّل من الضغط غير الضروري من خلال ميزتَي Smart Instancing وCulling. تكون هذه التقنية فعّالة بشكل خاص في المشاهد المعقّدة التي تتضمّن أشكالاً هندسية متكرّرة أو حجبًا كبيرًا.

GPU Resident Drawer

يستخدم GPU Resident Drawer تلقائيًا ميزة "النسخ المتطابق لوحدة معالجة الرسومات" لتقليل طلبات الرسم وتوفير وقت معالجة وحدة المعالجة المركزية. وبالتالي، بدلاً من أن تخبر وحدة المعالجة المركزية وحدة معالجة الرسومات بكل عنصر على حدة، تجمع وحدة معالجة الرسومات العناصر المتشابهة معًا.

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

تخيَّل مشهدًا لغابة تضم 200 شجرة باستخدام شبكة أساسية واحدة. بدون GPU Resident Drawer، لديك 200 طلب رسم تستهلك وحدة معالجة الرسومات، وبالتالي تحرّر وحدة المعالجة المركزية. عند تفعيل هذه الميزة، ستنشئ وحدة معالجة الرسومات (GPU) بشكل ذكي مثيلاً لتلك الأشجار، ما سيؤدي إلى تقليلها إلى 5 أو 10 طلبات رسم فقط. وهذا يوفّر الكثير من طاقة وحدة معالجة الرسومات التي يمكنك استثمارها في منطق اللعب أو حسابات الفيزياء.

GPU Occlusion Culling

تستخدم ميزة إزالة الانسداد في وحدة معالجة الرسومات وحدة معالجة الرسومات بدلاً من وحدة المعالجة المركزية لتحديد العناصر المخفية وتخطّي عرضها. يرصد هذا الوضع تلقائيًا العناصر المحجوبة (المخفية) خلف عناصر أخرى، وبالتالي لا يتم استهلاك وحدة معالجة الرسومات في عرض عناصر لا يمكن للمستخدم رؤيتها.

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

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

مراقبة أدائك

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

Performance Metrics API

توفّر واجهة برمجة التطبيقات Performance Metrics API إمكانية مراقبة استخدام الذاكرة وأداء وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) في تطبيقاتك في الوقت الفعلي. توفّر لك هذه الأداة بيانات شاملة من طبقات التركيب ووقت التشغيل، ما يتيح لك معرفة ما يحدث في تطبيقك بالضبط.

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

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

بدون هذه المقاييس، ستُجري التحسينات بدون معرفة النتائج. تخبرك واجهة برمجة التطبيقات Performance Metrics API بالحقيقة حول ما يساعد حالة الاستخدام المحدّدة.

أداة تصحيح الأخطاء في الإطارات

أداة تصحيح أخطاء الإطارات هي أداة مدمجة في Unity لفهم كيفية عرض المشهد بدقة، إطارًا بإطار. تعرض لك هذه الأداة تسلسل طلبات الرسم وتتيح لك تتبُّعها خطوة بخطوة للتحقّق من أنّ التحسينات تعمل بشكلٍ سليم.

هل تريد التأكّد من أنّ أداة تجميع الطلبات حسب الدفعات في SRP تعمل؟ ابحث عن إدخالات RenderLoopNewBatcher في "أداة تصحيح أخطاء الإطارات". هل يتم تجميع "لوحة العرض المقيمة في وحدة معالجة الرسومات" بشكلٍ صحيح؟ ابحث عن إدخالات "مجموعة الدفعات المختلطة". تساعدك هذه التأكيدات المرئية في معرفة ما إذا كانت إعدادات التحسين تؤتي ثمارها فعلاً.

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

تحسينات إضافية

بالإضافة إلى التحسينات التي تناولناها أعلاه، يتضمّن دليل الأداء الكامل أيضًا بعض التحسينات الإضافية الأخرى. في ما يلي ملخّص سريع:

  • إعدادات URP: أوقِف HDR وPost Processing للواقع الممتد على الأجهزة الجوّالة. تقدّم هذه الميزات تأثيرًا مرئيًا بسيطًا مقارنةً بتكلفة أدائها على أجهزة الجوّال، لذا ستحقّق تحسينات ملحوظة في الأداء مع اختلافات مرئية بالكاد يمكن إدراكها.
  • أداة تجميع حِزم SRP: تقلّل من الحمل الزائد لوحدة المعالجة المركزية في المشاهد التي تتضمّن العديد من المواد التي تستخدم صيغة التظليل نفسها. من خلال تقليل التغييرات في حالة العرض بين طلبات الرسم، يمكنك تقليل وقت وحدة المعالجة المركزية المستخدَم في العرض بشكل كبير.
  • معدّل تحديث الشاشة: يتم ضبطه بشكل ديناميكي بين 72 و90 لقطة في الثانية استنادًا إلى مدى تعقيد المشهد. يمكنك خفض عدد اللقطات في الثانية أثناء المشاهد المعقّدة للحفاظ على الثبات، ثم زيادته أثناء المشاهد الأبسط للحصول على تفاعل سلس للغاية.
  • العمق/النقوش المعتمة: أوقِف هذه الإعدادات ما لم تكن مطلوبة تحديدًا لتأثيرات التظليل. تتسبّب هذه العمليات في تنفيذ عمليات نسخ غير ضرورية لوحدة معالجة الرسومات تؤدي إلى إهدار الأداء بدون تقديم أي فائدة لمعظم التطبيقات.
  • مقياس العرض في خط أنابيب العرض الشامل (URP): يتيح لك هذا الإعداد العرض بدقة منخفضة للاستفادة من تحسين الأداء أو زيادة دقة العرض لتحسين جودة الصورة.

للحصول على تعليمات مفصّلة حول عمليات التحسين هذه وغيرها، يمكنك الاطّلاع على "دليل أداء Unity الكامل" لنظام التشغيل Android XR.

الخاتمة

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

إليك خطة العمل:

  1. ابدأ باستخدام ميزتَي Foveated Rendering وVulkan Subsampling. توفّر هذه الميزات الخاصة بالواقع الممتد توفيرًا فوريًا وملحوظًا في وحدة معالجة الرسومات.
  2. أضِف GPU Resident Drawer وOcclusion Culling إذا كانت لديك مشاهد معقّدة تتضمّن أشكالاً هندسية متكرّرة أو مساحات داخلية.
  3. تتبُّع كل شيء باستخدام Performance Metrics API للتأكّد من أنّ التغييرات تساعد فعلاً
  4. استكشاف تحسينات إضافية في URP لتحقيق أداء أفضل

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

الخطوة التالية: توسيع نطاق مهاراتك

هل أنت مستعد للاطّلاع على مزيد من التفاصيل؟ يمكنك الاطّلاع على المراجع التالية:

  • دليل أداء Unity لنظام التشغيل Android XR: تعليمات مفصّلة خطوة بخطوة لتنفيذ جميع الميزات الموضّحة هنا
  • بدء استخدام Unity وAndroid XR: يمكنك إعداد بيئة التطوير و بدء إنشاء التطبيقات.
  • مستندات المطوّرين في Android XR: أدلة شاملة لجميع ميزات Android XR
من تأليف:
متابعة القراءة