سماعة الرأس Samsung Galaxy XR متاحة الآن، وهي تعمل بنظام التشغيل Android XR. منشور المدونة هذا هو جزء من أسبوع Android XR Spotlight، حيث نقدّم موارد، مثل منشورات المدونة والفيديوهات ونماذج الرموز البرمجية وغيرها، وكلها مصمَّمة لمساعدتك في التعلّم والإنشاء وإعداد تطبيقاتك لنظام Android XR.
أطلقت Samsung هذا الأسبوع سماعة Galaxy XR التي تم تصميمها بالتعاون مع Google وQualcomm. هذه فترة رائعة للمطوّرين، وأردنا مساعدتك في تحقيق أفضل أداء ممكن لتطبيق الواقع الممتد.
في حين أنّ الأداء الضعيف في الألعاب والتطبيقات على الأجهزة غير المتوافقة مع تقنيات الواقع الممتد قد يكون مزعجًا للمستخدم، فإنّ الأداء في عالم الواقع الممتد ليس مجرد خيار، بل هو أساس نجاح تطبيقك. وإذا لم تحقّق عدد اللقطات في الثانية المستهدَف في الواقع الممتد، قد يؤدي ذلك إلى مشاكل أكثر خطورة، مثل داء الحركة.
في هذا الدليل، سنشرح لك عمليات تحسين الأداء الأساسية التي عليك معرفتها لتطوير تطبيقات Android XR. ستتعرّف على الميزات التي تحقّق أكبر تحسينات في الأداء، ومتى يجب استخدامها، وكيف تعمل معًا لمساعدتك في تحقيق عدد اللقطات في الثانية المستهدَفة.
في ما يلي ما نسعى إلى تحقيقه:
- الحد الأدنى: 72 لقطة في الثانية (جزء من إرشادات جودة التشغيل)
- اختياري: 90 لقطة في الثانية مع 11 ملي ثانية لكل لقطة
لمزيد من المعلومات حول أهمية الحفاظ على معدّل لقطات مرتفع، اطّلِع على إرشادات الأداء.
ميزات الأداء الخاصة بالواقع المُمتد
سنبدأ بتغطية ميزتَين متعلّقتَين بالأداء في تجارب الواقع الممتد، وهما: "التقديم البؤري" و"التقليل من دقة العرض في Vulkan".
Foveated Rendering
التقديم البؤري هو تحسين يتضمّن وضعَين. أولاً، هناك الوضع الثابت الذي يعرض مركز الشاشة بدقة أعلى، ويقلّل الدقة تدريجيًا كلما نظرت إلى الخارج.
أما الوضع الثاني فهو وضع تتبُّع حركة العين الذي يعرض تحديدًا المنطقة التي تنظر إليها بتفاصيل كاملة، مع تقليل جودة العرض في الأجزاء المحيطة. وهي تحاكي بشكل أساسي طريقة عمل الرؤية البشرية، حيث لا نرى التفاصيل الدقيقة إلا في المنطقة المحددة التي نركّز عليها.
يقلّل العرض البؤري بشكل كبير من عبء العمل على وحدة معالجة الرسومات بدون التأثير في جودة الصورة التي يراها المستخدم. تكمن ميزة العرض البؤري في أنّ المستخدمين لن يلاحظوا انخفاض الجودة في مجال رؤيتهم المحيطي، ولكن وحدة معالجة الرسومات ستلاحظ بالتأكيد تحسّن الأداء.
تخيَّل أنّك تصمّم تجربة في متحف تتضمّن قطعًا أثرية ثلاثية الأبعاد ومعقّدة. بدون تقنية "العرض البؤري"، ستواجه صعوبة في الحفاظ على معدل 90 لقطة في الثانية عند محاولة عرض كل شيء في "مجال الرؤية". باستخدام تقنية "العرض البؤري"، يمكنك الحفاظ على تفاصيل المجسمات العالية في المكان الذي ينظر إليه المستخدم، ولكن يتم عرض البيئة الخلفية بجودة أقل. لن يلاحظ المستخدمون الفرق، ولكن سيكون لديك مساحة كافية لإضافة المزيد من التفاصيل إلى المشهد.
جمع العيّنات الجزئية في Vulkan
إنّ جمع العيّنات الجزئية في Vulkan هو أفضل صديق لتقنية "التركيز على نقطة واحدة". في حين تحدّد ميزة "التقديم البؤري" ما يجب تقديمه بمستويات جودة مختلفة، تتعامل ميزة "جمع العيّنات الجزئية" في Vulkan مع كيفية تقديم مستويات الجودة المختلفة بكفاءة باستخدام "خرائط كثافة الأجزاء".
عند دمجه مع تقنية "العرض البؤري"، يمنحك جمع العيّنات الجزئية في Vulkan تحسّنًا إضافيًا في الأداء بمقدار 0.5 ملي ثانية. ويساعد أيضًا في تنعيم الحواف المتعرّجة في مجال رؤيتك المحيطية، ما يجعل الصورة تبدو أكثر وضوحًا بشكل عام.
على سبيل المثال، في لعبة محاكاة الطيران التي يركّز فيها المستخدمون على الأدوات وعناصر التحكّم، يعني الجمع بين العرض البؤري والتقليل من دقة العرض في Vulkan أنّ عناصر التحكّم التفصيلية يتم عرضها بوضوح، ولكن بنية قمرة القيادة الطرفية تستخدم موارد أقل. قد لا يبدو هذا الوقت الإضافي البالغ 0.5 ملي ثانية كبيرًا، ولكنّه يتيح إضافة عنصر تفاعلي إضافي أو تجنُّب فقدان اللقطات خلال اللحظات المكثّفة.
ميزات وحدة معالجة الرسومات للمشاهد المعقّدة
بالإضافة إلى ميزتَي Foveated Rendering وVulkan Subsampling، هناك بعض ميزات وحدة معالجة الرسومات التي تقلّل من الضغط غير الضروري من خلال ميزتَي Smart Instancing وCulling. وتكون هذه التقنية فعّالة بشكل خاص في المشاهد المعقّدة التي تتضمّن أشكالاً هندسية متكرّرة أو حجبًا كبيرًا.
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 لفهم طريقة عرض المشهد بدقة، إطارًا بإطار. تعرض لك هذه الأداة تسلسل طلبات الرسم وتتيح لك تتبُّعها خطوة بخطوة للتحقّق من أنّ التحسينات تعمل بشكلٍ صحيح.
هل تريد التأكّد من أنّ أداة تجميع الطلبات في حِزم تعمل؟ ابحث عن إدخالات RenderLoopNewBatcher في "أداة تصحيح أخطاء الإطارات". هل يتم تجميع GPU Resident Drawer بشكل صحيح؟ ابحث عن إدخالات "مجموعة الدفعات المختلطة". تساعدك هذه التأكيدات المرئية في معرفة ما إذا كانت إعدادات التحسين تؤتي ثمارها فعلاً.
تتبَّع أول 50 طلب رسم في المشهد. إذا رأيت عناصر متشابهة يتم رسمها بشكل فردي بدلاً من تجميعها، يعني ذلك أنّ عملية إنشاء النسخ أو التجميع لا تعمل بشكل صحيح. يُظهر Frame Debugger هذه المشاكل على الفور لتتمكّن من حلّها.
تحسينات إضافية
بالإضافة إلى التحسينات التي تناولناها أعلاه، يغطّي دليل الأداء الكامل أيضًا بعض التحسينات الإضافية الأخرى. في ما يلي ملخّص سريع:
- إعدادات URP: أوقِف HDR وPost Processing لأجهزة XR الجوّالة. تقدّم هذه الميزات تأثيرًا مرئيًا بسيطًا مقارنةً بتكلفة أدائها على أجهزة الجوّال، لذا ستحقّق تحسينات ملحوظة في الأداء مع اختلافات مرئية بالكاد يمكن إدراكها.
- أداة تجميع SRP: تقلّل من الحمل الزائد لوحدة المعالجة المركزية (CPU) في المشاهد التي تتضمّن العديد من المواد التي تستخدم صيغة التظليل نفسها. من خلال تقليل التغييرات في حالة العرض بين طلبات الرسم، يمكنك تقليل وقت وحدة المعالجة المركزية المستخدَم في العرض بشكل كبير.
- معدّل إعادة تحميل الشاشة: يتم تعديل المعدّل ديناميكيًا بين 72 و90 لقطة في الثانية استنادًا إلى مدى تعقيد المشهد. خفض عدد اللقطات في الثانية أثناء المشاهد المعقّدة للحفاظ على الثبات، ثم زيادته أثناء المشاهد الأبسط لتوفير تفاعل سلس للغاية
- العمق/النقوش المعتمة: أوقِف هذه الإعدادات ما لم تكن مطلوبة تحديدًا لتأثيرات التظليل. وتتسبّب في عمليات نسخ غير ضرورية لوحدة معالجة الرسومات تؤدي إلى إهدار الأداء بدون تقديم أي فائدة لمعظم التطبيقات.
- مقياس العرض في خط أنابيب العرض الشامل (URP): يسمح لك هذا الإعداد بالعرض بدقة منخفضة للاستفادة من مزايا الأداء أو زيادة دقة العرض لتحسين جودة المرئيات.
للحصول على تعليمات تفصيلية حول عمليات التحسين هذه وغيرها، يمكنك الاطّلاع على "دليل أداء Unity الكامل لنظام التشغيل Android XR".
الخاتمة
لا يقتصر أداء تطبيق الواقع الممتد على مجرد استيفاء المتطلبات الفنية. وهو الفرق بين تجربة مريحة وجذابة وتجربة تجعل المستخدمين يشعرون بالمرض أو عدم الارتياح. إنّ التحسينات التي تناولناها هي مجموعة الأدوات التي تساعدك في تحقيق معدّلات اللقطات المهمة هذه على أحدث أجهزة XR.
إليك خارطة الطريق:
- ابدأ باستخدام ميزتَي Foveated Rendering وVulkan Subsampling. توفّر هذه الميزات الخاصة بتجربة الواقع الممتد توفيرًا فوريًا وملحوظًا في وحدة معالجة الرسومات.
- أضِف GPU Resident Drawer وOcclusion Culling إذا كانت لديك مشاهد معقّدة تتضمّن أشكالاً هندسية متكرّرة أو مساحات داخلية.
- تتبُّع كل شيء باستخدام Performance Metrics API للتأكّد من أنّ التغييرات تساعدك فعلاً
- استكشاف تحسينات إضافية في URP لتحقيق أداء أفضل
من الضروري القياس بشكل مستمر والتكرار. لن يستفيد كل مشروع من كل عملية تحسين بشكل متساوٍ، لذا استخدِم Performance Metrics API للحصول على فكرة واضحة عمّا يساعد حالة الاستخدام المحدّدة.
الخطوة التالية: توسيع نطاق مهاراتك
هل أنت مستعد للاطّلاع على مزيد من التفاصيل؟ يمكنك الاطّلاع على المراجع التالية:
- دليل أداء Unity على Android XR: تعليمات مفصّلة خطوة بخطوة لتنفيذ جميع الميزات الموضّحة هنا
- بدء استخدام Unity وAndroid XR: يمكنك إعداد بيئة التطوير و بدء إنشاء التطبيقات.
- مستندات المطوّرين في Android XR: أدلة شاملة لجميع ميزات Android XR
متابعة القراءة
-
أخبار المنتجات
أعلنّا اليوم خلال فعالية The Android Show أنّ نظام التشغيل Android سيتحوّل من نظام تشغيل إلى نظام ذكي، ما يتيح المزيد من فرص التفاعل مع تطبيقاتك.
Matthew McCullough • مدة القراءة: 4 دقائق
-
أخبار المنتجات
تتطوّر المنظومة المتكاملة للأجهزة الجوّالة باستمرار، ما يؤدي إلى ظهور فرص وتهديدات جديدة. من خلال هذه التغييرات، يظلّ Android وGoogle Play ملتزمَين بضمان استمرار إمكانية استفادة مليارات المستخدمين من تطبيقاتهم بثقة وازدهار الابتكار لدى المطوّرين.
Vijaya Kaza • قراءة لمدة 3 دقائق
-
أخبار المنتجات
إصدار 26 أبريل من Jetpack Compose ثابت. يتضمّن هذا الإصدار الإصدار 1.11 من وحدات Compose الأساسية (راجِع عملية الربط الكاملة بقائمة المواد)، وأدوات تصحيح أخطاء العناصر المشترَكة، وأحداث لوحة اللمس، وغير ذلك.
Meghan Mehta • مدة القراءة: 5 دقائق
البقاء على اطّلاع على آخر التحديثات
يمكنك تلقّي أحدث الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.