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


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


يشبه انعكاس أشعة التتبّع انعكاس أشعة الشمس التقليدية من حيث المبدأ: يُطلق انعكاس أشعة التتبّع أشعة في اتجاه انعكاس خط الرؤية على أساس كل بكسل على حدة، ويحسب تقاطع الأشعة مع كائنات المشهد. تحتوي نقطة التقاطع التي تعرضها Ray Query API على معلومات هندسية (بما في ذلك معرّف العنصر وفهرس الهندسة فهرس العنصر الأولي) ومقاييد الترميز النقطي (إحداثيات مركز الكتلة) على مستوى المثلث، ولكنها لا تحتوي على بيانات ألوان البكسل. يستخدم الحلّ النموذجي تكنولوجيا ربط موارد غير المرتبط لإنشاء ملف مُجمَّع مسبقًا لجميع مَعلمات ملف العناصر المجسمة والمواد في المشهد في صفيف فهرس عام. باستخدام المعرّفات الهندسية التي يعرضها طلب البحث عن الأشعة، يمكن البحث عن الخصائص الفيزيائية للمواد المقابلة (مثل الخريطة العادية والخشونة)، ثم دمجها مع الاستقراء المتعلّق بتنسيق الإحداثيات المركزية لحساب معلومات التظليل على السطح، ويمكن إعادة إنشاء قيمة اللون الفعلية للتقاطع من خلال التحويل إلى شبكة.
ومع ذلك، أثناء عملية التنفيذ، اكتشف فريق Diablo Immortal مشكلتَين فنيتَين مهمتَين:
- تمّ فرض توحيد نموذج الإضاءة، ما تعارض مع أنظمة التظليل المتنوّعة التي تمّ إنشاؤها على مدار تاريخ المشروع، وكانت ستؤدي إلى عدم تطابق بين المادة المُبرِقة والمواد الأصلية.
- يؤدي تنوع أشكال الرؤوس إلى انخفاض كفاءة التفرع في التعليمات في مرحلة التحويل إلى شبكة بكسل، ما يشكّل مشكلة كبيرة في ظل الميزانية الصارمة للأداء على الجهاز الجوّال.
قدّم فريق Diablo Immortal ميزة "مخزّن الرؤية" بشكل مبتكر بهدف فصل معالجة الأشكال الهندسية عن عمليات احتساب التظليل:
- مرحلة تتبُّع الأشعة: يتم تسجيل معلومات اصطدام الأشعة على مستوى البكسل في الوقت الفعلي
من خلال طلب الأشعة. يتم ترميز المعرّف المكاني الثلاثي الأبعاد (
InstanceID
معPrimitiveIndex
) لنقطة التقاطع في رقم تعريف مركّز للظهور ويتم كتابته في ذاكرة التخزين المؤقت لمساحة الشاشة. - مرحلة التلوين: على غرار العمليات التي تُجريها برامج تشويش رؤوس العناصر ووحدات البكسل، تتم معالجة المعرّفات الهندسية في ذاكرة التخزين المؤقت للرؤية بشكل ديناميكي، ويتم جلب خصائص رؤوس العناصر (مثل وحدات UV والدوائر العادية) وخرائط المواد المستندة إلى الخصائص الفيزيائية للنموذج الأصلي، ويتم أخيرًا إجراء عمليات تشويش الألوان المرتبطة بنوع المادة.
يتيح هذا الحل ربط مواد العرض الفنية بنظام التأمل المُتبع بالاستناد إلى أشعة Tracing بدون الحاجة إلى تعديل تنسيقات رؤوس العناصر أو مواد التظليل.
خطوات عرض معيّنة
تمريرة طلب البحث عن الأشعة
تتوافق مع مرحلة تتبُّع الأشعة وتُنشئ ذاكرة تخزين مؤقت للرؤية لما ينعكس على مساحة الشاشة:
- اللون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.
بدء استخدام ميزة "تتبُّع أشعة الضوء" في Vulkan
كما هو موضّح في Diablo Immortal، يتطلّب تحقيق تأثيرات تتبع الأشعة على Android الاستفادة من Vulkan API على الأجهزة المزوّدة بالإمكانات اللازمة. يمكن للمطوّرين المهتمين باستخدام Vulkan مباشرةً الرجوع إلى مقالة التعرّف على ميزة "تتبُّع أشعة الضوء" باستخدام Vulkan على Android من شركة ARM أو قسم تتبُّع أشعة الضوء في مقالة Adreno GPU on Mobile: Best Practices (وحدة معالجة الرسومات Adreno على الأجهزة الجوّالة: أفضل الممارسات) من شركة Qualcomm. لمعرفة تفاصيل عن واجهة برمجة التطبيقات، يُرجى الرجوع إلى مواصفات Ray Tracing In Vulkan الرسمية من Khronos.
بالنسبة إلى التطوير المستنِد إلى المحرّك، يقدّم Unreal Engine بالتعاون مع ARM دعمًا تجريبيًا لاستخدام Lumen مع ميزة "تتبُّع أشعة الأجهزة" على الأجهزة الجوّالة. في حين أنّ Unity لا تزال تعمل على تطوير تقنية التتبُّع الشعاعي بالاستناد إلى الأجهزة على Android، ننصحك بمتابعتها.