إليك سماعة الرأس 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" أداءً أفضل بمقدار 0.5 ملي ثانية. ويساعد أيضًا في تنعيم الحواف المتعرّجة في مجال رؤيتك المحيطية، ما يجعل الصورة تبدو أكثر وضوحًا بشكل عام.
على سبيل المثال، في لعبة محاكاة الطيران التي يركّز فيها المستخدمون على الأدوات وعناصر التحكّم، يعني الجمع بين العرض البؤري والتقليل من دقة العرض في Vulkan أنّ عناصر التحكّم التفصيلية يتم عرضها بوضوح، ولكن بنية قمرة القيادة الطرفية تستخدم موارد أقل. قد لا يبدو هذا الوقت الإضافي البالغ 0.5 ملي ثانية كبيرًا، ولكنّه يتيح إضافة عنصر تفاعلي إضافي أو تجنُّب فقدان اللقطات خلال اللحظات المكثّفة.
ميزات وحدة معالجة الرسومات للمشاهد المعقّدة
بالإضافة إلى ميزتَي "العرض البؤري" و"جمع عيّنات جزئية في Vulkan"، هناك بعض ميزات وحدة معالجة الرسومات التي تقلّل من الضغط غير الضروري من خلال ميزتَي "النسخ الذكي" و"الاستبعاد". وتكون هذه التقنية فعّالة بشكل خاص في المشاهد المعقّدة التي تتضمّن أشكالاً هندسية متكرّرة أو حجبًا كبيرًا.
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 تتيح لك فهم طريقة عرض المشهد بدقة، إطارًا بإطار. تعرض لك هذه الأداة تسلسل طلبات الرسم وتتيح لك تتبُّعها خطوة بخطوة للتحقّق من أنّ عمليات التحسين تعمل بشكلٍ صحيح.
هل تريد التأكّد من أنّ أداة تجميع الطلبات في حِزم تعمل؟ ابحث عن إدخالات RenderLoopNewBatcher في "أداة تصحيح أخطاء الإطارات". هل يتم تجميع "لوحة العرض المقيمة في وحدة معالجة الرسومات" بشكلٍ صحيح؟ ابحث عن إدخالات "مجموعة الدفعات المختلطة". تساعدك هذه التأكيدات المرئية في معرفة ما إذا كانت إعدادات التحسين تؤتي ثمارها فعلاً.
تتبُّع أول 50 طلب رسم في المشهد إذا رأيت عناصر متشابهة يتم رسمها بشكل فردي بدلاً من تجميعها، يعني ذلك أنّ عملية إنشاء النسخ أو التجميع لا تعمل بشكل صحيح. تتيح أداة Frame Debugger إمكانية رصد هذه المشاكل على الفور حتى تتمكّن من حلّها.
تحسينات إضافية
بالإضافة إلى التحسينات التي تناولناها أعلاه، يغطّي دليل الأداء الكامل أيضًا بعض التحسينات الإضافية الأخرى. في ما يلي ملخص سريع:
- إعدادات URP: أوقِف HDR وPost Processing لأجهزة XR الجوّالة. تقدّم هذه الميزات تأثيرًا مرئيًا بسيطًا مقارنةً بتكلفة أدائها على أجهزة الجوّال، لذا ستحقّق تحسينات ملحوظة في الأداء مع اختلافات مرئية بالكاد يمكن إدراكها.
- أداة تجميع SRP: تقلّل من الحمل الزائد لوحدة المعالجة المركزية (CPU) في المشاهد التي تتضمّن العديد من المواد التي تستخدم صيغة التظليل نفسها. من خلال تقليل التغييرات في حالة العرض بين طلبات الرسم، يمكنك تقليل وقت وحدة المعالجة المركزية (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
متابعة القراءة
-
أخبار المنتجات
تختلف احتياجات كل مطوّر وسير عمله المرتبط بالذكاء الاصطناعي، ومن المهم أن يتمكّن من اختيار الطريقة التي يساعد بها الذكاء الاصطناعي في عملية التطوير. في يناير، أتحنا إمكانية اختيار أي نموذج ذكاء اصطناعي محلي أو عن بُعد لتشغيل وظائف الذكاء الاصطناعي في استوديو Android
Matthew Warner • مدة القراءة: دقيقتان
-
أخبار المنتجات
أصبح الإصدار 3 من استوديو Android Panda ثابتًا وجاهزًا للاستخدام في الإنتاج. يمنحك هذا الإصدار المزيد من التحكّم والتخصيص في مهام سير العمل المستندة إلى الذكاء الاصطناعي، ما يسهّل عليك إنشاء تطبيقات Android عالية الجودة أكثر من أي وقت مضى.
Matt Dyor • قراءة لمدة 3 دقائق
-
أخبار المنتجات
في Google، نحن ملتزمون بتوفير نماذج الذكاء الاصطناعي الأكثر تطورًا مباشرةً على أجهزة Android التي تحملها في جيبك. يسرّنا اليوم الإعلان عن إطلاق أحدث نماذجنا المفتوحة والمتطورة: Gemma 4.
Caren Chang, David Chou • قراءة لمدة 3 دقائق
البقاء على اطّلاع على آخر التحديثات
يمكنك تلقّي أحدث الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.