
الوقت المتغير ديناميكيًا من اليوم ، وتأثيرات الطقس المتنوعة ، والعديد من المناطق الأحيائية القابلة للاستكشاف تجعل تتبع الأشعة في الوقت الفعلي خيارًا رائعًا لـ The Riftbreaker
جولة سريعة في تتبع الأشعة
عالم The Riftbreaker ديناميكي تمامًا وقابل للتدمير. يمكن أن يتأثر اللاعب تقريبًا بجميع الكائنات الموجودة في البيئة. يمكن ثني الغطاء النباتي وحرقه وتذويبه. يمكن لآلاف المخلوقات أن تتجول حول اللاعب وتملأ الشاشة بالكامل. يتطلب هذا النوع من اللعب أسلوبًا خاصًا لتقديم ظلال ديناميكية بالكامل.
في السابق ، لإنشاء الظلال في محرك Schmetterling 2.0 ، استخدموا طريقة خريطة الظل في الوقت الفعلي (بدون خرائط الظل المحسوبة مسبقًا نفسها). كان هذا الحل هو الأفضل بسبب الهندسة الديناميكية الكاملة للمشهد. ومع ذلك ، لم يكن من الممكن استخدام أي خرائط ضوئية محسوبة مسبقًا ، لأنها لا تناسب هذه الهندسة بالذات. هذا هو السبب في أن خرائط الظل الديناميكية كانت الحل الحقيقي الوحيد لفترة طويلة. على الرغم من استخدامها على نطاق واسع في جميع أنحاء الصناعة ، إلا أن لها عددًا من القيود.

جزء من معركة الزعيم. تعلق على الرئيس نقطة ضوء الظل التي تضيف الإخلاص البصري إلى المشهد.
تعد أحدث الأجيال من وحدات معالجة الرسومات قوية بما يكفي لإجراء حسابات تتبع الأشعة في الوقت الفعلي. وقد أتاح ظهور بطاقات الرسوم الجديدة للاستوديو تقديم ظلال تتبع الأشعة أخيرًا والتي تقدم نتائج فائقة مقارنة بأساليب رسم خرائط الظل التقليدية.
المبدأ الأساسي لتتبع الظل هو أننا لا ننظر إلى المشهد من وجهة نظر مصدر الضوء ولا نبحث عن جميع أنواع طبقات الظل ، كما هو الحال في خرائط الظل. يسمح لك تتبع الشعاع بإطلاق الأشعة في مصدر الضوء. إذا اصطدمت الحزمة بعائق ما ، فلن تكون هناك إضاءة مباشرة منه. إذا وصل إلى مصدر الضوء ، فلن تتم إضافة ظلال. هذه الخوارزمية بسيطة للغاية ، لكنها تعطي نتائج ممتازة وتقدم حلولاً لمشاكل عرض الظل الشائعة. ومع ذلك ، فمن الصعب إرضاءه بشأن أداء وحدة معالجة الرسومات.

يمكن لكل عنصر من عناصر الهندسة الديناميكية للمشهد أن يلقي بظلاله. كان التحدي يتمثل في جعل هذه الظلال تظهر بأكبر قدر ممكن من الدقة مع الحفاظ على الأداء.
إن إضافة تقنية عرض جديدة تمامًا إلى محرك اللعبة الخاص بك ليست مهمة سهلة. في حالة The Riftbreaker ، ساعد تعاون الاستوديو مع AMD كثيرًا. لقد قدموا مكتبة GPUOpen RT Shadows الخاصة التي تحتوي على كل من حلول تتبع الأشعة وتقليل الضوضاء لتنظيف نتائج تمرير تتبع الأشعة. ومع ذلك ، قبل البدء في استخدام هذه المكتبة ، اضطررت إلى تطوير عارض DirectX 12 لمحرك اللعبة. كان السبب في ذلك هو DirectX Raytracing API (المعروف أيضًا باسم DXR) الذي تم تقديمه في معيار DirectX 12 Ultimate. تتيح واجهة برمجة التطبيقات هذه استخدام إمكانات تظليل جديدة وإمكانيات تتبع شعاع الأجهزة لوحدات معالجة الرسومات الحديثة.

The Riftbreaker . .
ميزة أخرى للعمل مع AMD هي الشفرة مفتوحة المصدر لحلولها. يتيح ذلك إمكانية تنفيذ التكنولوجيا المتوافقة مع أحدث منصات الألعاب في السوق ، بما في ذلك وحدات تحكم الجيل التالي. من الجدير بالذكر أيضًا أن توافق النظام الأساسي قد أثر في تحديد واجهة برمجة التطبيقات (API) وعرضها. تم النظر في خيارين: Vulkan و DirectX 12. على الرغم من أن Vulkan تتضمن تتبع الأشعة ، إلا أن واجهة برمجة التطبيقات هذه غير متوفرة على Xbox أو PlayStation ، وحتى كتابة هذه السطور ، تدعم Nvidia فقط على الكمبيوتر. يوفر الانتقال إلى DirectX 12 دعمًا مضمّنًا لتتبع الأشعة على أجهزة كمبيوتر Xbox و Windows ، مما يتيح لك استخدام الأجهزة من أي جهة تصنيع.

مع تغير الظروف الجوية ، يتغير الظل الجزئي أيضًا. في هذا المثال ، يمكنك أن ترى كيف تصبح الظلال أكثر نعومة عندما تمطر وأكثر حدة مع سطوع الشمس.
يمكن أن تختلف فوائد تطبيق ظلال تتبع الأشعة اعتمادًا على سيناريو التنفيذ. في حالة The Riftbreaker ، فإن أهم الميزات هي:
- دقة الظل "اللانهائية": لا تعتمد جودة الظل على المسافة من الهدف إلى الكاميرا ، على عكس طرق رسم خرائط الظل التقليدية. يحتوي كل بكسل على الشاشة على تظليل محسوب بشكل فردي ، مما ينتج عنه ظلال أكثر دقة وثباتًا دون حدوث وميض.
- تحول الظلال: تحاكي الظلال التي تتبع الأشعة ديناميكيًا مواقف مثل الانتقال من السماء الملبدة بالغيوم في المطر إلى منتصف النهار الساطع.
- تكلفة منخفضة لحساب مصادر الضوء الإضافية التي تلقي بظلالها. من خلال التنفيذ الحالي لظلال تتبع الأشعة في The Riftbreaker ، يمكنك حساب ما يصل إلى 4 أضواء ظلل في وقت واحد دون تدهور كبير في الأداء. تكلفة إضافة أضواء إضافية في حالة خرائط الظل أعلى بكثير.
كل هذه الفوائد تأتي على حساب خسارة كبيرة في الأداء. حتى مع أحدث وحدات معالجة الرسومات التي تدعم تتبع الأشعة المتسارع للأجهزة ، يمكن أن تصل قيم FPS مع تمكين جميع تأثيرات تتبع الأشعة إلى النصف عند مقارنة نفس المشهد بدون تتبع.
تنفيذ ظلال شعاع
تعد إضافة ظلال تتبع الأشعة إلى مشهد عملية معقدة ينتج عنها خريطة مفصلة للغاية لوحدات البكسل المضيئة وغير المضاءة. أثناء المرور الأول لتتبع الشعاع ، من الضروري استعادة موضع جميع وحدات البكسل في المنطقة المرئية من الشاشة وتوجيه الأشعة من هذه البكسلات إلى جميع مصادر الضوء التي تؤثر عليها. هذه الإحداثيات مأخوذة من المخزن المؤقت للعمق. إذا وصل الشعاع إلى مصدر الضوء ، فسيتم إضاءة السطح مباشرة. إذا اصطدمت الحزمة بعائق في مسارها ، فسيتم تظليل السطح. بالإضافة إلى ذلك ، لتحسين العملية ، يتم إرسال جميع الأشعة السطحية بخرائط عادية تواجه بعيدًا عن مصدر الضوء. يحدد التمرير التالي نوع التظليل الذي سيتم تطبيقه على تقاطع الشعاع والسطح. يستخدم DXR API تظليل للمعالجة ،بناءً على نتيجة تتبع الشعاع ، والتحقق منه مقابل جدول التظليل الموجود.

مثال لمشهد لعبة به تتبع للأشعة - تم تمكين الظلال الناعمة والإغلاق المحيط. تعد
بطاقات رسومات سلسلة Radeon RX 6000 المستخدمة لتطوير تتبع الأشعة في The Riftbreaker قوية وقادرة على إطلاق ملايين الأشعة في الثانية. ومع ذلك ، هناك حاجة إلى مزيد من المعلومات للحصول على فكرة دقيقة عن كيفية تصرف الضوء في عالم اللعبة. في حالة العرض في وضع عدم الاتصال ، يعني هذا عادةً إرسال آلاف الأشعة في جميع الاتجاهات لكل بكسل. لا توجد أجهزة حديثة قادرة على إجراء هذه الحسابات في الوقت الفعلي ، ناهيك عن القيام بذلك 60 مرة في الثانية. لذلك ، تحتاج إلى إنشاء خريطة ظل دقيقة بطريقة ما باستخدام بيانات غير كاملة.

. , .
يؤدي عدم وجود بيانات دقيقة إلى العديد من المشاكل ويمكن أن يؤدي إلى تدهور جودة الصورة في المشهد. بينما سيكون لدينا معظم المعلومات اللازمة لتصيير الكائنات ، فإن التفاصيل مثل المسارات والحواف والظلال الناعمة ستختفي وتندمج مع بعضها البعض. ينتج عن عدد محدود من الحزم لكل إطار ظلال صاخبة. ثم يتم تشغيل مكتبة GPU أخرى مفتوحة المصدر - FidelityFX Denoiser من AMD. تعد إزالة الضوضاء عملية معقدة أصبحت ممكنة بفضل الاستخدام الواسع النطاق للطرق الزمنية التي تحلل الإطارات السابقة وتدمجها في إطار جديد. يتيح لك AMD NR تحديد متوسط البيانات المتاحة بسرعة والخصائص التي يجب تطبيقها على بكسل معين للحصول على صورة واضحة دون أي حل وسط مرئي.

نفس المشهد بعد إزالة الضوضاء

, . .
بالطبع ، تبين أن تنفيذ ظلال تتبع الأشعة ليس بالمهمة السهلة بحيث يقتصر على استخدام اثنين من المكتبات الجاهزة. تقدم Riftbreaker تحدياتها الفريدة التي تتطلب حلولًا محددة.
كانت المشكلة الأولى هي العدد الهائل من العناصر الديناميكية الموجودة في عالم اللعبة. في The Riftbreaker ، تلعب دور عالم يستكشف كوكبًا خارج المجموعة الشمسية يسكنه العديد من الأنواع الغريبة من النباتات والحيوانات. يتعرض اللاعب للهجوم بين الحين والآخر من قبل جحافل الآلاف من المخلوقات الفضائية. كل واحد منهم يجب أن يلقي بظلاله. إلى جانب نظام الغطاء النباتي الديناميكي الذي يستجيب للرياح وموجات الصدمة وقوى الانحناء التي تطبقها كائنات أخرى ، فقد أصبح هذا مشكلة تحسين رئيسية.

تتفاعل آلاف الكيانات مع بعضها البعض في الوقت الفعلي
كانت المشكلة الرئيسية هي الطريقة التي يعالج بها إطار التسريع العلوي لتتبع الأشعة البيانات. يخزن هذا الهيكل معلومات حول الكائنات الموجودة في المشهد والتي يتم استخدامها أثناء مرور تتبع الأشعة. لا يمكن تخزين هذه البيانات إلا على هيئة بنية تسريع منخفضة المستوى مخبوزة مسبقًا تحتوي على معلومات حول رؤوس الكائن. هذه ليست مشكلة عندما يتعلق الأمر بالصخور أو المباني ، ولكن جميع الوحدات ذات الرسوم المتحركة الهيكلية والمختلطة ديناميكيًا والنباتات الديناميكية لا تتوافق تمامًا مع افتراض البيانات المخبوزة مسبقًا.

«» . , . : , .
لتزويد إطار التسريع بجميع البيانات اللازمة ، كان لا بد من اتخاذ بعض الخطوات الجادة. يتم تحميص كل كائن ديناميكي في المشهد بشكل فردي في نموذج ثابت جديد تمامًا يمكن معالجته أثناء مرور تتبع الأشعة. للحفاظ على الدقة ، يجب تكرار هذه العملية في كل إطار. يضاف إلى تعقيد هذه المهمة حقيقة أن The Riftbreaker لديها نظام طقس ديناميكي. لهذا السبب ، من الممكن أن يكون مصدر الضوء بزاوية ، بسببها يلقي الكائن بظلاله على الإطار ، دون أن يكون مرئيًا بشكل مباشر. هذا يعني أنه أثناء عملية الخبز ، يجب أن تأخذ في الاعتبار ليس فقط الأشياء الموجودة في الجزء المرئي من الشاشة ، ولكن أيضًا خارجها.

يتم تقديم إطار التسريع بالكامل في إطار عرض واحد فقط.
تعتبر عملية إعداد هياكل التسريع مرهقة للغاية من حيث حسابات وحدة المعالجة المركزية ويمكن أن تصبح بسهولة عنق الزجاجة للعارض بأكمله. يقلل محرك Schmetterling 2.0 من الحمل على وحدة المعالجة المركزية عن طريق الموازاة المكثفة لجميع العمليات المطلوبة لإعداد مشهد لتتبع الشعاع. من خلال توزيع العمليات بين وحدة المعالجة المركزية ووحدة معالجة الرسومات ، كان من الممكن العثور على قوة المعالجة المطلوبة لأداء كل هذه العمليات في كل إطار. في حالة سيناريو الاختبار الذي يتضمن حوالي 6000 مخلوق تهاجم قاعدة اللاعب ، كان من الممكن تقليل وقت العرض من 60 مللي ثانية إلى 17 مللي ثانية عن طريق موازاة المهام المعتمدة على وحدة المعالجة المركزية (باستخدام وحدة المعالجة المركزية AMD Ryzen 9 3900X وإصدار ما قبل الإصدار من Radeon 6800XT).

The Riftbreaker. , , , .
-
التحدي الفريد الآخر الذي كان على المهندسين حله عند تنفيذ تقنيات تتبع الأشعة في The Riftbreaker تبين أنه مرتبط بنظام الغطاء النباتي ، وإن كان بطريقة مختلفة قليلاً. عادة ما يتم اختبار القوام المستخدم بواسطة أوراق الشجر ألفا وغالبًا ما تحتوي على مناطق شفافة. ومع ذلك ، بالنسبة لـ raikast ، هذا لا يهم. بمجرد أن يضرب الشعاع بكسلًا شفافًا على النسيج ، فإنه يُرجع "الضربة" العادية. هذا لا يعني بالضرورة أن البيكسل الذي ننتج منه الأشعة يجب أن يكون مغطى بالظل ، لأنه إذا كانت النقطة التي ضربناها شفافة ، يجب أن يستمر الشعاع في التحرك نحو مصدر الضوء. هناك العديد من هذه القوام في اللعبة ، لذلك كان من الضروري إيجاد حل لهذه المشكلة وإضافة دعم لاختبار ألفا في AnyHit shader.

- . , .
كان نهج الاستوديو هو استخدام حل يستخدم في تقنيات العرض التقليدية. عند الاصطدام بالسطح ، نحصل على إحداثيات مركزية مركزية للمثلث عند نقطة التقاطع. لا تكفي هذه الإحداثيات لتحديد أي بكسل من النسيج قد اصطدم به الشعاع ، ويمكنك فقط معرفة موضع نقطة التقاطع في المثلث. ومع ذلك ، في هذه المرحلة ، يمكننا تحديد القمم التي يجب أخذها في الاعتبار. يحتوي كل رأس في المثلث على مجموعة من إحداثيات UVW المعينة لها من قبل مصمم الرسوم أثناء التركيب. بمعرفة أي مثلث وقعنا فيه ، وإحداثيات التقاطع داخل هذا المثلث وأي جزء من النسيج يجب أن يغطيه ، يمكننا إجراء اختبار ألفا.

المضلعات الموجودة أسفل قوام الغطاء النباتي معتمة للأشعة. اضطررت إلى تقديم طريقة إضافية للتحقق مما إذا كانت تقع في المكان الذي كان معتمًا حقًا.
ومع ذلك ، قبل حدوث كل ما سبق ، يحتاج هيكل التسريع إلى تمرير معلومات حول الأنسجة ومواقعها. لهذا ، نحتاج إلى جدول تظليل ، وهو في الأساس بنك بيانات لوحدة معالجة الرسومات. يسرد النسيج المستخدم في المشهد والقيم المخصصة لهم في الفهرس والمخازن المؤقتة للقمة. باستخدام جدول التظليل ، يمكنك الحصول بسرعة على جميع بيانات النموذج والنسيج التي تحتاجها لإكمال خطوات التظليل التالية.

نظرًا لأن Riftbreaker تحدث في عالم غريب غير مأهول ، فهناك العديد من الحيوانات البرية التي يمكن العثور عليها هنا
إذا كانت النتيجة "معتمة" ، يتم تطبيق بيانات التظليل وتنتهي العملية لهذا الشعاع المعين. في حالة الضربات غير الشفافة ، يتم إجراء اختبار ألفا. كما ذكرنا سابقًا ، عندما يعبر شعاع سطحًا ما ، يمكنك من هنا الحصول على إحداثيات مركزية للنقطة في المثلث الذي اصطدم به. من خلال معرفة هذه الإحداثيات والإشارة إلى المخزن المؤقت للفهرس ، يمكنك الحصول على مؤشرات رؤوس المثلث المحدد. هذا يسترد إحداثيات UVW. باستخدام البيانات التي يوفرها المخزن المؤقت للفهرس ، يمكنك الآن العثور على معلومات في المخزن المؤقت للرأس حول مكان سقوط هذه القمم على النسيج. فقط بعد كل هذه الإجراءات نحصل على إجابة لسؤال ما إذا كان الشعاع قد اصطدم بسطح معتم أو شفاف. إذا كانت قيمة ألفا عند نقطة التقاطع أقل من حد الشفافية ، يستمر الشعاع في التقاطع مع المشهد.

بهذه الطريقة نحصل على النتيجة الدقيقة في كل إطار. اضغط على الصورة لعرض أكبر.
يزيد اختبار ألفا من تكلفة المواد من حيث حسابات الظل المتتبع بالأشعة مقارنة بالطرق التقليدية ، لذلك من الأفضل تجنبها قدر الإمكان. في سيناريو الغابة ، تكون تكلفة إرسال مثل هذه الحزمة أعلى بحوالي 20٪ من تكلفة إرسال الحزمة لجسم معتم. لتقليل عدد الأشعة التي تضرب الأسطح الشفافة ، يلزم إجراء تحسينات عن طريق الحد من مساحة السطح لجميع الكائنات الشفافة. عرض الكاميرا في The Riftbreaker متساوي القياس ، وبالتالي فإن عدد المضلعات المرئية في نفس الوقت محدود بشكل طبيعي ، ويمكننا بسهولة زيادة وقت عرض المضلع لمعظم الكائنات دون التأثير على أداء وحدة معالجة الرسومات.
خاتمة
استفاد فقط من استخدام Riftbreaker لتتبع الأشعة. أصبح عالم اللعبة أكثر تصديقًا ، مما يساهم في الانغماس بشكل أفضل. تساعد التفاصيل الصغيرة المضافة مع تتبع الأشعة بالتأكيد على تحسين الإدراك. إن رؤية مذنب لامع في السماء يلقي بظلاله على الأجسام الديناميكية على الأرض هو مشهد جميل حقًا. الأيام الملبدة بالغيوم ، بدورها ، استقبل اللاعب بظلال ناعمة ولوحة ألوان أكثر كتمًا. سيأخذ Riftbreaker بالتأكيد مكانه الذي يستحقه في تشكيلة ألعاب الجيل القادم.

يأتي Riftbreaker إلى أجهزة الكمبيوتر ووحدات التحكم في عام 2021.