
Diablo Immortal هي لعبة مجانية متعدّدة اللاعبين من فئة ألعاب تمثيل الأدوار المصحوبة بالحركة (ARPG) تم تطويرها بشكلٍ مشترك من قِبل Blizzard Entertainment وNetEase. Diablo Immortal: فصل جديد في سلسلة Diablo، تم إطلاقه في عام 2022 تمثّل هذه اللعبة حلقة الوصل بين Diablo 2 وDiablo 3، وتروي مغامرة جديدة حول أجزاء حجر العالم، حيث يستكشف اللاعبون قارة الملاذ لمحاربة الشياطين والقوى الفاسدة.
مع الابتكار في بنية وحدة معالجة الرسومات للأجهزة الجوّالة والإنجازات في إمكانات معالجة الأجهزة ، يتم نقل تقنية تتبُّع الأشعة تدريجيًا من أجهزة الكمبيوتر المكتبي إلى الأجهزة الجوّالة، لتصبح أحد العوامل الأساسية لمعالجة الرسومات بدقة عالية. إنّ احتساب الانعكاسات الديناميكية الواقعية يتطلّب معالجة مكثفة، ولكنّ وحدة برمجية مخصّصة تجعل ذلك ممكنًا على المنصات الجوّالة ذات الطاقة المحدودة. من خلال تتبُّع مسار انتشار الضوء في المشهد في الوقت الفعلي، تحاكي التكنولوجيا بدقة سلوك الانعكاس على الأسطح المعقّدة، مثل المرايا والمعادن والسوائل. تتغلب تقنية تتبُّع الأشعة على القيود المكانية وأخطاء التقريب في مخططات التصغير التقليدية، كما تتيح التعبير المُنسَّق على مستوى العالم عن مصادر الإضاءة الديناميكية والكائنات التي تظهر خارج الشاشة والانعاكسات على مستويات متعددة.
ميزة "تتبُّع أشعة الضوء" بالأجهزة الجوّالة
تتضمّن تكنولوجيا تتبُّع أشعة الأجهزة بشكل أساسي أسلوبَين أساسيَين لتنفيذها: مسار تتبع الأشعة وطلب الأشعة.
تُنشئ مسار تتبع الأشعة مسارًا كاملاً من خلال مراحل مخصّصة لتأثيرات التظليل (توليد الأشعة / التقاطع / تأثير التظليل الأقرب). على الرغم من أنّه يمكنه تحقيق التحكّم الدقيق في تفاعل الأشعة، تتطلّب مسار تتبع الأشعة ضبط مسار مستقل، ما يزيد من تعقيد عملية التطوير.
من ناحية أخرى، تسمح طلبات البحث عن الأشعة ببدء طلبات البحث عن الأشعة مباشرةً منshadersالحسابية أو الشرائح التقليدية، مما يجعلها تقنية أساسية لتتبُّع الأشعة على الأجهزة الجوّالة. من خلال إزالة الحاجة إلى استخدام عمليات تدفق منفصلة، لا يعمل طلب البحث عن أشعة "رنين" على تبسيط عملية التطوير فحسب، بل يقدّم أيضًا ثلاث مزايا رئيسية:
- يوفر التوافق مع بيئات الحوسبة غير المتجانسة وأجهزة تتبُّع الأشعة غير المكتملة
- تتيح إمكانية طلب تتبع أشعة الضوء عند الطلب في أي مرحلة من مراحل التظليل
- من خلال تقليل استخدام الموارد، تلبي هذه الميزة قيود معدل نقل البيانات واستهلاك الطاقة في منصّات الأجهزة الجوّالة، كما توفّر أساسًا عمليًا لتأثيرات متقدمة، مثل الإضاءة العالمية الديناميكية وتأثيرات انعكاسها في الوقت الفعلي في ألعاب الأجهزة الجوّالة.
تستخدم لعبة Diablo Immortal مكتبة Vulkan للاستفادة من إمكانات التتبُّع الشعاعي للأجهزة في وحدة معالجة الرسومات. تحسب اللعبة مسار أشعة الضوء في المشهد في الوقت الفعلي وتراعي خصائص المواد المعقّدة لمحاولة تحقيق تأثيرات انعكاس رائعة في الوقت الفعلي على أجهزة Android.


بنية التسارع
بنية التسريع هي الأساس في ميزة "تتبُّع شعاع" باستخدام الأجهزة. تعمل بنية التسارع على تحسين كفاءة اختبار تقاطع الأشعة بشكل كبير من خلال تنظيم البيانات التدرّجية.
يتضمّن النظام عادةً مستويَين: بنية التسريع على مستوى أعلى (TLAS) وبنية التسريع على مستوى أدنى (BLAS):
- تؤدي واجهة برمجة التطبيقات TLAS دور مدير المشهد، وذلك من خلال تسجيل ملف تعريف قاعدة بيانات مصفوفة التحويل المكاني (بما في ذلك الموضع والدوران والحجم) لجميع مثيلات BLAS، وتعمل واجهة برمجة التطبيقات TLAS على تنظيم المشاهد الديناميكية بشكل عام. على سبيل المثال، تسمح تقنية TLAS للمطوّرين بتوزيع مئات النُسخ من نموذج الشجرة نفسه في مواضع وأشكال مختلفة في المشهد، وبالتالي، يحتاج المطوّرون فقط إلى تعديل مصفوفة التحويل للجسم المتحرك في كل لقطة بدلاً من إعادة إنشاء الشكل الهندسي.
- تنسيق BLAS كوحدة أساسية: تُستخدَم تنسيق BLAS لإنشاء بنية فهرس مكاني من خلال خوارزمية التسلسل الهرمي للحجم الحدودي (BVH)، وذلك لتخطّي المناطق غير ذات الصلة بسرعة أثناء رصد الأشعة، وذلك لأنّ تنسيق BLAS مسؤول عن ترميز التفاصيل الهندسية بكفاءة لجسم ثلاثي الأبعاد واحد.
يسمح هذا التصميم الهرمي لمسار تتبع الأشعة بتشكيل سلسلة الكشف الفعالة التالية: شعاع ==> TLAS (مثيل عنصر الشبكة الخشنة) ==> BLAS (التداخل الدقيق).
إنّ فصل النماذج الديناميكية عن النماذج الثابتة هو مفتاح خفض تكلفة إنشاء بنية التسارع:
- النموذج الثابت: لا يلزم إنشاء نموذج BLAS إلا مرة واحدة في مرحلة الإعداد، ويمكن إعادة استخدامه مباشرةً في عمليات تحميل المشاهد اللاحقة. لتجنُّب تأخُّر loading في المشاهد الكبيرة، يمكن استخدام تكنولوجيا الإنشاء المُعَدّ مسبقًا غير المتزامنة لميزة التأطير لنشر مهمة إنشاء BLAS على إطارات متعددة.
- النموذج الديناميكي
- التحريك المستنِد إلى الهيكل العظمي: يجب احتساب بيانات رؤوس المضلّعات المخصّصة للتأثيرات المرئية في الموازاة باستخدام برنامج "الشفافية الحسابية" في كل إطار لإنشاء ملف تخزين رؤوس مضلّعات جديد، ثم بدء التحديث المتزايد لملف BLAS المقابل، ما يتجنّب إعادة الإنشاء بالكامل لتحسين الأداء.
- تحويل الأجسام الصلبة: إذا كانت عمليات التحويل هي الترجمة/الدوران/التكبير فقط، ليس عليك تعديل BLAS، ما عليك سوى تعديل مصفوفة التحويل العالمي في TLAS ثم بدء عملية التعديل السريع في TLAS.
إنّ إعادة الإنشاء الدورية ضرورية للحفاظ على بنية التسريع وكفاءة في المشاهد الديناميكية لتتبُّع أشعة الضوء. عندما تخضع الأجسام الديناميكية لتغييرات كبيرة في الطوبولوجيا الهندسية، مثل التشوه أو إزاحة الرأس على نطاق واسع، قد يتعذّر التقسيم المكاني الأصلي، ما يؤدي إلى خفض أداء رصد التصادم أثناء عبور الأشعة. ونتيجةً لذلك، يجب بدء عملية إعادة إنشاء كاملة بدلاً من تعديل متزايد لـ BLAS/TLAS الديناميكي للغاية كل N لقطة.
أخيرًا، لتحسين أداء العرض بالاستناد إلى تتبع الأشعة، يمكنك اعتماد استراتيجية ديناميكية لإنشاء ملف TLAS استنادًا إلى المنطقة القابلة للعرض للشخصية: لا يتم تضمين سوى النماذج ضمن الحدّ الأدنى للدائرة النشطة للشخصية في ملف TLAS لتقليل الوقت المستغرَق في العمليات الأساسية لحساب تقاطع الأشعة.
الانعكاسات المستندة إلى التتبُّع الشعاعي
تتمتع الانعكاسات المستندة إلى التتبُّع الشعاعي بعدة مزايا مقارنةً بالتقنيات التقليدية، مثل الانعكاسات في مساحة الشاشة (SSR) والانعكاسات المستوية (الأسطح البسيطة التي تصوّر مشهدًا في سمة واحدة). تعمل ميزة "الانعكاس المستند إلى التتبع الشعاعي" على تمثيل مسار الضوء بشكلٍ فيزيائي، كما تلتقط بدقة الأجسام الديناميكية داخل المشهد وخارجه، وتتيح الانعكاسات الطبيعية من الأسطح المنحنية وغير المستوية، كما تتيح تأثيرات متعددة للارتدادات الضوئية، مثل المرايا. في المقابل، تقتصر تقنية SSR على المعلومات الظاهرة على الشاشة، وتميل الانعكاسات المسطحة المسطّحة إلى حدوث أخطاء مرئية أو تشويه في المشاهد المعقّدة.


يشبه انعكاس أشعة التتبّع انعكاس أشعة الشمس المباشرة (SSR) من حيث المبدأ: يُطلق انعكاس أشعة التتبّع شعاعًا في اتجاه انعكاس خط الرؤية على أساس كل بكسل على حدة، ويحسب تقاطع الأشعة مع كائنات المشهد. تحتوي نقطة التقاطع التي تعرضها Ray Query API على معلومات هندسية (بما في ذلك معرّف العنصر وفهرس الهندسة فهرس العنصر الأولي) ومقاييد الترميز النقطي (إحداثيات مركز الكتلة) على مستوى المثلث، ولكنها لا تحتوي على بيانات ألوان البكسل. يستخدم الحلّ النموذجي تكنولوجيا ربط موارد غير مرتبطة لإنشاء ملف مُجمَّع مسبقًا لجميع مَعلمات ملف العناصر المجسمة والمواد في المشهد في صفيف فهرس عام. باستخدام المعرّفات الهندسية التي يعرضها طلب البحث عن الأشعة، يمكن البحث عن الخصائص الفيزيائية للمواد المقابلة (مثل الخريطة العادية والخشونة)، ثم دمجها مع الاستقراء المتعلّق بتنسيق الإحداثيات المركزية لحساب معلومات التظليل على السطح، ويمكن إعادة إنشاء قيمة اللون الفعلية للتقاطع من خلال التحويل إلى شبكة.
ومع ذلك، أثناء عملية التنفيذ، اكتشف فريق Diablo Immortal مشكلتَين فنيتَين مهمتَين:
- تمّ فرض توحيد نموذج الإضاءة، ما تعارض مع أنظمة التظليل المتنوّعة التي تمّ إنشاؤها على مدار تاريخ المشروع، وكانت ستؤدي إلى عدم تطابق بين المادة المُبرِقة والمواد الأصلية.
- يؤدي تنوع أشكال الرؤوس إلى انخفاض كفاءة التفرع في التعليمات في مرحلة التحويل إلى شبكة بكسل، ما يشكّل مشكلة كبيرة في ظل الميزانية الصارمة للأداء على الجهاز الجوّال.
قدّم فريق Diablo Immortal تقنية جديدة تُعرف باسم "مخازن الرؤية" بهدف فصل معالجة الأشكال الهندسية عن عمليات احتساب التظليل:
- مرحلة تتبُّع الأشعة: يتم تسجيل معلومات اصطدام الأشعة على مستوى البكسل في الوقت الفعلي
من خلال طلب الأشعة. يتم ترميز المعرّف المكاني الثلاثي الأبعاد (
InstanceID
معPrimitiveIndex
) لنقطة التقاطع في رقم تعريف مركّز للظهور ويتم كتابته في ذاكرة التخزين المؤقت لمساحة الشاشة. - مرحلة التلوين: على غرار العمليات التي تُجريها برامج تشويش رؤوس العناصر وبرامج تشويش وحدات البكسل، تتم معالجة المعرّفات الهندسية في ذاكرة التخزين المؤقت للرؤية بشكل ديناميكي، ويتم جلب خصائص رؤوس العناصر (مثل وحدات UV والدوائر العادية) وخرائط المواد المستندة إلى الخصائص الفيزيائية للنموذج الأصلي، ويتم أخيرًا إجراء عمليات تشويش الألوان المرتبطة بنوع المادة.
يتيح هذا الحل ربط مواد العرض الفنية بنظام التأمل المُتبع في تقنية التتبُّع الشعاعي بدون الحاجة إلى تعديل تنسيقات رؤوس العناصر أو مواد التظليل.
خطوات عرض معيّنة
تمريرة طلب البحث عن الأشعة
تتوافق مع مرحلة تتبع الأشعة وتُنشئ ذاكرة تخزين مؤقت للرؤية لما ينعكس على مساحة الشاشة:
- اللون0
- التنسيق: R32G32UInt
- R = TriangleID،G = Barycentrics

- العمق:
- التنسيق: Depth32F
- D = EncodeAsFloat(InstanceIdx, GeometryIdx)
- يتم ترميز معرّف المادة للنقطة المتقاطعة باستخدام نقطة كثافة متغيرة 32 بت ويتم كتابته في ذاكرة التخزين المؤقت للعمق من أجل المرحلة التالية من تقنية رصد مطابقة ترميز العمق للمادة.

مقارنةً ببرنامج "الشيفرة الحسابية"، يتمتع استعلام الأشعة في برنامج "الشيفرة المخصّصة للصور" بالفوائد التالية:
- دمج مسار العرض: يتم تضمين مسار العرض مباشرةً في مسارات عرض موجودة للعرض المباشر/المؤجّل، مع الحفاظ على اتّساق حالة مسار العرض.
- تحسين معدل نقل البيانات على الأجهزة الجوّالة: بالنسبة إلى البنية المستندة إلى التظليل على الأجهزة الجوّالة، يمكن بدء ميزة
الضغط بدون فقدان البيانات على الشريحة عند كتابة بيانات اصطدام الأشعة في
RenderTarget
، ما يقلل من استهلاك معدل نقل البيانات في الذاكرة مقارنةً بميزة إخراج تظليل الحساب التقليدي إلى المخزن المؤقت. - التحكّم في عدد الأشعة: يمكن وضع علامة على المناطق غير العاكسة ورفضها باستخدام مرحلة حسابية مسبقة مع اختبار استنسل.
حلّ المشكلة
في مرحلة التلوين (راجِع الانعكاسات المستندة إلى التتبّع بالاستناد إلى الأشعة)، حقق فريق Diablo Immortal مطابقة سريعة لتحديد الهوية باستخدام وحدة الأجهزة لاختبار العمق و تنفيذ عملية تلوين المواد في دفعات متتالية.
يتم إصدار تمريرة رسم في وضع ملء الشاشة لكل مادة. يعيد برنامج تظليل رؤوس المضلّعات إنشاء المعرّف المشفَّر للمادة الحالية بشكل ديناميكي. باستخدام اختبار "التطابق مع العمق"، تتم مقارنة المعرّف بالقيم المشفّرة في ذاكرة التخزين المؤقت للعمق، ولا يتم الاحتفاظ إلا بالبكسل التي تتطابق قيمها المشفّرة تمامًا، أي تلك البكسل التي تنتمي إلى مثيل المادة الحالي. وتعمل وحدات البكسل التي تم الاحتفاظ بها على تنفيذ تأثير التظليل المرتبط بالمواد.
بعد ذلك، يتم تنفيذ إعادة إنتاج المواد بدقة عالية في برنامج تشويش وحدات البكسل:
- فك ترميز بيانات الأشكال الهندسية: يستخرج معرّف المثلث (
MeshID
+PrimitiveID
) وإحداثيات مركز الكتلة من مخزن الرؤية ويحمِّل ديناميكيًا سمات الرأس (الموضع وUV والاتجاه العادي وما إلى ذلك) للمثلث المعنيّ من مخزن الرأس. بما أنّ كل نموذج مظلّل كمواد مستقلة، فإنّ الميزات المتقدّمة، مثل الربط، ليست ضرورية. - إعادة إنشاء مَعلمات السطح: يتم احتساب إحداثيات UV عند نقطة التقاطع باستخدام الاستقراء الإحداثي المركزي. يتم تنفيذ معالجة رسومات برمجية للحصول على عيّنات من الخريطة استنادًا إلى قيم UV التي تمّت الاستقراء منها.
- إعادة استخدام عملية احتساب التظليل: تُعيد استخدام رمز التظليل الحالي مباشرةً للحفاظ على منطق المادة نفسه المستخدَم في مسار العرض الرئيسي.

أخيرًا، لا تشكل النماذج التي تشارك فعليًا في احتساب الانعكاس سوى جزء صغير جدًا من المشهد. يمكن قراءة بيانات تحديد نموذج الانعكاس التي يعرضها وحدة معالجة الرسومات بشكل غير متزامن لإزالة النماذج/المواد التي لا تشارك في الانعكاس، ما يؤدي إلى خفض عدد طلبات الرسم (يحدث طلب الرسم عند إرسال مواد وشبكة إلى وحدة معالجة الرسومات للرسم) في مرحلة التظليل.
انعكاس تام مستند إلى قوانين الفيزياء
لتحقيق انعكاسات عالية الدقة، يتم تصنيف الأسطح العاكسة على أنّها أحد الأنواع الثلاثة التالية حسب درجة الخشونة:
- بدون انعكاس: يمكن تخطّي عمليات احتساب الانعكاس لهذه الأسطح لمحاولة توفير الموارد. إذا كان السطح خشنًا جدًا، يصبح الانعكاس مموهًا وخفيفًا، وبالتالي لا يكون واضحًا.
- انعكاس المرآة: مثل المرآة الملساء، تكون الصورة المنعكسة واضحة وغير مموّهة. صوِّر الخط مباشرةً في اتجاه الانعكاس من خط الرؤية.
- الانعكاس اللامع: يتم محاكاة الانعكاس مع خشونة معيّنة للسطح استنادًا إلى تحليل كثافة العينات المهمّة في GGX، والذي يمكن أن يأخذ في الاعتبار كلّ من الكفاءة الحسابية والدقة المادية. ينحرف الانعکاس في اتجاه الانعكاس المرتدّ الرئيسي عند بث الخط، ما يحسن كفاءة أخذ العينات في منطقة الإضاءة.
لتحقيق جودة صورة قابلة للاستخدام مع استهلاك طاقة محدود، اتّبع فريق Diablo Immortal حلّ 1SPP+Denoiser. وهذا يعني أنّ فريق Diablo Immortal أخذ عيّنة واحدة لكل بكسل، ثمّ استخدَم خوارزمية خفض الضوضاء الزمنية/المساحية للتخفيف من الكمّ الكبير من الضوضاء المرتبط بانخفاض معدّل أخذ العينات.
اختار فريق Diablo Immortal أداة إزالة الضوضاء من الانعكاسات في AMD FidelityFX Denoiser، وهي أداة إزالة ضوضاء عالية الأداء تم تحسينها للانعكاسات المستندة إلى تتبع أشعة الضوء والانعكاسات في مساحة الشاشة. تتمثل الميزة الأساسية لميزة "إزالة الضوضاء من الانعكاسات" في خوارزمية إزالة الضوضاء المختلطة في الزمان والمكان: من خلال دمج اللقطة الحالية وبيانات اللقطات السابقة (استنادًا إلى تعويض الحركة)، بالإضافة إلى تقنيات الترشيح المساحي (مثل فلترة الاحتفاظ بالحدود استنادًا إلى التباين)، تزيل ميزة "إزالة الضوضاء من الانعكاسات" الضوضاء بكفاءة وتُخرج تأثيرات انعكاسات سلسة بمعدّل أخذ عينات منخفض جدًا.
للتكيّف مع خصائص مسارات التقديم المطوّرة ذاتيًا واستيفاء قيود الأداء الصارمة للأجهزة الجوّالة، نفَّذ فريق Diablo Immortal عملية تبسيط مستهدفة وتعديلًا على البنية عند دمج AMD FidelityFX Reflection Denoiser.
ميزة "تتبُّع أشعة الضوء" العالية الدقة باستخدام Vulkan
تعمل لعبة Diablo Immortal على مجموعة كبيرة من أجهزة Android المزوّدة بتقنية Vulkan، حيث استفاد فريق Diablo Immortal من إمكانات تكنولوجيا تتبُّع الأشعة المبتكرة في أجهزة معالجة الرسومات. قلّل Vulkan من الوقت والموارد المُستخدَمة في عملية التطوير، ما سهّل تقديم محتوى وأسلوب لعب Diablo Immortal العاليَين الجودة لمستخدمي Android.