تستخدم شركتا Summoners War: Chronicles US(WW) وKR من Com2uS ميزات Vulkan فقط للعرض على Android مع تحسينات تصل إلى %30 في الأداء.
Vulkan هي واجهة برمجة تطبيقات للرسومات الثلاثية الأبعاد وحديثة تعمل على عدّة منصات، وهي مصمّمة للحدّ من التجريد بين معدّات رسومات الجهاز ولعبتك. يتطلّب Vulkan أن يكون أعباء وحدة المعالجة المركزية (CPU) أقل مقارنةً بـ OpenGL ES، ويقدّم Vulkan مجموعة واسعة من الميزات.
![](https://developer.android.com/static/images/cards/distribute/stories/com2us_game.png?authuser=9&hl=ar)
ميزات العرض
طوّرت Com2uS ميزات عرض متقدّمة للعبة Summoners War: Chronicles، بما في ذلك:
- نظام عرض مخصّص المؤجل مع إمكانية اختيار الضوء للعرض المسبق وما يصل إلى 16 مصباحًا نشطًا في قسم عرض الصورة في الوقت نفسه
- طريقة تسليط الضوء على العرض غير المباشر (تُسمّى
Clay
) لرسم العديد من الشبكات والمواد والقوام في آنٍ واحد - الاستخدام المكثّف لأدوات التظليل الحوسبية لمهام العرض المسبق
- إمكانية الضبط الديناميكي لعرض الظل النشط وتأثيرات ما بعد المعالجة بشكل ديناميكي بناءً على حركة الكاميرا وخيارات الرسومات وأداء وقت التشغيل
تسهيل استخدام الأجهزة المحمولة
تستخدم لعبة Summoners War: Chronicles العارض نفسه لأجهزة Android وأجهزة الكمبيوتر الشخصية ووحدات التحكّم المخصّصة بالألعاب. ولتحقيق الأداء الأمثل على الأجهزة الجوّالة، ضبطت Com2uS إعدادات العرض بما في ذلك عمق الرسم والكثافة. لتلائم أجهزة معيّنة تعمل بنظام التشغيل Android 11 (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأقدم، أنشأت Com2uS إصدارات بديلة من بعض أدوات التظليل واستخدمت أعدادًا مخفّضة للمثيلات. تستخدم لعبة Summoners War: Chronicles أيضًا ميزات الأداء التكيّفي على Android لضبط خيارات الرسومات ديناميكيًا استجابةً للظروف الحرارية للأجهزة.
الأسباب المنطقية لـ Vulkan فقط
استخدمت Com2uS الإصدار Vulkan حصريًا من أجل لعبة Summoners War: Chronicles لعدة أسباب:
- تم استبعاد الحد الأدنى من متطلبات الجهاز للأجهزة القديمة والأقل قوة التي تفتقر إلى دعم Vulkan
- تخصيص محرّك Unity يجب توفُّر ميزات مدمَجة في مسار العرض (BiRP) في خلفية Vulkan الخاصة باللعبة
- يمكن تنفيذ ميزات العرض التي تستخدم مخرجات أداة التظليل الحوسبي وكائنات المخزن المؤقت لتخزين التظليل (SSBOs) على Vulkan ولكن ليس OpenGL ES
حساب أعباء العمل
تنفِّذ لعبة Summoners War: Chronicles أعمالاً مهمة في أداة التظليل الحوسبية للحصول على بيانات للعرض. تُستخدم أدوات تظليل الحوسبة في ما يلي:
- انتقاء العناصر
- فحص التصادم
- مهام الصور المتحركة
- إنشاء بيانات العرض غير المباشر
وتتم كتابة بيانات الحوسبة الناتجة على كائنات RWBuffer لمحرك Unity. ولتحقيق الأداء الأمثل، تجري Summoners War: Chronicles جميع مهام الحوسبة من خلال عملية إرسال واحدة، ما يتطلّب استخدام عدة أدوات RWBuffers في الوقت نفسه. لم يكن هذا النهج ممكنًا إلا باستخدام Vulkan، حيث إنّ الواجهة الخلفية لـ Unity BiRP OpenGL ES تتوافق فقط مع استخدام RWBuffer واحد في المرة الواحدة.
غالبًا ما تكون مجموعات البيانات التي يتم إنشاؤها للعرض أكبر من حدود حجم الجهاز لكائنات المخزن المؤقت المنتظمة (UBOs). بدلاً من ذلك، تستخدم لعبة Summoners War: Chronicles عناصر المخزن المؤقت للتخزين في Shader التي تتضمّن حدودًا أكبر. ومع ذلك، فإن ربط SSBOs بعمليات مرحلة الرأس يتطلب دعم SSBO للقراءة فقط. لا يتوافق OpenGL ES إلا مع عناصر SSBO المخصّصة للقراءة والكتابة، بينما يمكن لـ Vulkan وضع علامة على SSBOs على أنّها للقراءة فقط.
عرض فوري غير مباشر باستخدام الطين
في لعبة Summoners War: Chronicles، طوّر فريق Com2uS طريقة لتجميع عدة مواد وشبكات وزخارف في جلسة رسم واحدة. يشير Com2uS إلى هذا النظام باسم Clay. يحسّن الطين أداء اللعبة بنسبة 30% نتيجة تقليل طلبات السحب بشكل كبير.
يبدأ الطين خلال مرحلة الاعتقال والاصطدام من خلال بناء قائمة بالعناصر المرئية المتوافقة القابلة للعرض. ثم يقوم الطين بإنشاء معلومات العرض لكل كائن محدد في SSBOs. يتم تنفيذ هذه العملية باستخدام وحدات الحوسبة، التي تتيح استخدام العرض المثيل غير المباشر باستخدام الدالة DrawMeshInstancedIndirect لعرض Unity. باستخدام العرض غير المباشر، يتم إنشاء معلومات المثيل ومعلمات عدد المثيلات مباشرةً على وحدة معالجة الرسومات. عند رسم الكائنات، بدلاً من ربط شبكة كائن تقليدية، يربط الطين شبكة مخروطية كما في الصورة:
![](https://developer.android.com/static/images/cards/distribute/stories/com2us_cone.png?authuser=9&hl=ar)
ثم يُحوّل الطين الشبكة المخروطية في مظلل الرأس باستخدام SSBO مرتبط ببيانات تحويل الرأس التي تم إنشاؤها بواسطة أدوات التظليل الحوسبية. يتطلب ربط SSBOs بمرحلة الرأس استخدام Vulkan. يمكن للطين استخدام العديد من الأقماع المحولة لعرض كائن واحد. يحدد تعقيد الكائن عدد الأقماع.
![](https://developer.android.com/static/images/cards/distribute/stories/com2us_cone_usage.png?authuser=9&hl=ar)
يتم تجميع بيانات المواد للكائنات في مخزن مؤقت آخر تنشئه وحدات الحوسبة. يرتبط المخزن المؤقت بأداة تظليل الأجزاء. يتم تكوين زخارف الكائنات التي يتم رسمها في صفيف نسيج. يتم تضمين فهارس الصفيفة لزخارف الكائن في بيانات مادة الكائن. وفي ظل الظروف المثالية، يمكن عرض الطين بسبع طلبات رسم بحد أقصى:
- الكائنات الثابتة
- العناصر المتحركة
- الظلال (أربعة تكرارات)
- تأمّلات
Unity وVulkan
توضح Summoners War: Chronicles أنّ التركيبة الفعّالة بين محرّك ألعاب Unity وواجهة برمجة تطبيقات Vulkan لرسومات الفيديو يتيح للمطوّرين توفير رسومات بجودة وحدات التحكّم المتقدّمة على أجهزة Android.