Q2VKPT: Quake II بالكامل مع إضاءة واقعية


Q2VKPT هي أول لعبة قابلة للعب بأشعة كاملة ، تحاكي بشكل فعال الإضاءة الديناميكية الكاملة في الوقت الفعلي باستخدام نفس التقنيات الحديثة المستخدمة في صناعة الأفلام (انظر دليل ديزني العملي لتتبع المسار ).

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

عن المشروع


تم إصدار المشروع كمصدر مفتوح على GitHub . إنه يدمج جهاز تتبع أشعة فولكان في عميل Q2PRO . نشأ المشروع بسبب الحاجة إلى إجراء أبحاث حول رسومات الكمبيوتر لمحتوى الاختبار السريع. كان الدافع وراء ذلك هو النتائج الأولى المثيرة لجهاز تقديم تتبع المسار المكتوب في عام 2016 .

القصة


تم إنشاء VKPT و Q2VKPT كمشروع هواية بواسطة Christoph Schied لاختبار نتائج أبحاث رسومات الكمبيوتر في هذه اللعبة. في الوقت الحالي ، يشتمل المشروع على 12 ألف سطر من التعليمات البرمجية ويستبدل بالكامل رمز الرسم الأصلي لل Quake II. في البداية ، تم كتابة النموذج الأولي الخاص به في OpenGL بمشاركة يوهانس هانيكا ( تتبع الأشعة التجريبية ، تظليل ، تصحيح GL / Vulkan) ، Addis Diettebrand (التسلسل الهرمي للإضاءة ، وتصور تصحيح الأخطاء) ، Tobias Zirr (أخذ عينات الإضاءة ، الموقع الإلكتروني ، والنصوص الإعلامية) وفلوريان ريبولد (التسلسل الهرمي الأولي للتغطية). تم تقديم مساعدة إضافية من قبل ستيفان بيرجمان وإيمانويل شراد وأليس يونج وكريستوف بيترز ( قليل من الضوضاء ).

المواد القابلة للتحميل



فيديو




لقطات غير ناجحة في التطوير: فيديو مع مواطن الخلل 1 ، فيديو مع مواطن الخلل 2 .

لقطات


ننصحك بمشاهدة الفيديو أو تشغيل اللعبة بنفسك ، لأن الإضاءة الديناميكية الكاملة أصبحت أفضل في الحركة.

إنارة عالمية ديناميكية بالكامل تم إنشاؤها باستخدام تتبع الأشعة. وأضاف الظلال التي تم إنشاؤها بواسطة تتبع الشعاع ، انعكاسات لامعة ومرحلة واحدة من انعكاس الإضاءة غير المباشرة










خرج مسار التتبع (يسار) ومرشح تخفيض الضوضاء المطبق (يمين)

مقارنة لقطة


التكنولوجيا


يتم تطبيق Q2VKPT على واجهة برمجة تطبيقات Vulkan لتتمكن من استخدام ميزات تتبع أشعة الأجهزة الجديدة التي ظهرت العام الماضي. بفضلهم ، يمكن أن تقترب اللعبة من 60 إطارًا في الثانية (2560 × 1440 ، RTX2080Ti) مع تتبع الأشعة الكاملة والتظليل الديناميكي مع نماذج واقعية من الإضاءة العالمية محسوبة في الوقت الفعلي. يتيح لك استخدام تتبع المسار للإضاءة الديناميكية بالكامل زيادة تفاصيل تظليل مشاهد اللعبة بشكل كبير ، مما يؤدي بطبيعة الحال إلى تفاعل معقد من الظلال الحادة والسلسة والمواد اللامعة والانعكاسات الصحيحة مستقبلاً. علاوة على ذلك ، يمكن للضوء أن ينتشر بشكل طبيعي في كل مكان ، وربط المشاهد كما يفعلون في العالم الحقيقي. لا يمكن للحلول التقليدية مع الإضاءة المحسوبة مسبقًا أو التقديرات النقطية الخشنة في الوقت الفعلي أن تحقق مثل هذه التفاصيل مع دقة قابلة للمقارنة ، لأن الكمية الكاملة من المعلومات حول الإضاءة ستتجاوز أي حدود للذاكرة.

التفاصيل الفنية


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

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

سؤال وجواب


لماذا "تعطل" لعبتي؟


نقوم بهذا المشروع في وقت فراغنا ، لذلك ليس لدينا قوة كافية لمراقبة الجودة بعناية. الرجاء إرسال تقرير بالأخطاء إلى متتبع المشكلة في مستودع GitHub الخاص بنا!

لماذا لا توجد جزيئات؟ أحتاج الذباب والشرر من railgun!


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

في أيامنا هذه ، تبدو الألعاب واقعية للغاية! لماذا استخدام تتبع المسار؟


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

الزلزال الثاني هي لعبة قديمة! إذا كان لهذه التقنيات أي مستقبل ، فستعمل اليوم بتردد 6000 FPS!


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

لماذا الزلزال الثاني؟


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

كيف يمكنني استخدام Q2VKPT كمعيار؟


افتح وحدة التحكم بالضغط على المفتاح "~". في الإصدار التجريبي من Quake 2 ، يمكنك استخدام الأمر "timedemo 1؛ التجريبي q2demo1 "، في النسخة الكاملة - الأمر" timedemo 1 ؛ التجريبي demo1 ". يتم تشغيل ملف التعريف المدمج مع الأمر vkpt_profiler 1. يوفر تفاصيل حول توقيت GPU لخطوات التقديم الفردية.

كيف يختلف تتبع المسار عن تتبع الأشعة؟


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

تتبع المسار وتتبع الأشعة - مستقبل رسومات الألعاب؟


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

هل سيؤدي تتبع المسار في النهاية إلى حل جميع مشاكل الرسومات؟


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

هل يستخدم Q2VKPT خرائط الإضاءة من اللعبة الأصلية؟


يستخدم محرك Quake 2 الأصلي خرائط إضاءة محسوبة مسبقًا تحتوي على ظلال ناعمة وإضاءة غير مباشرة. يستبدل Q2VKPT الإضاءة الثابتة تمامًا بمحاكاة ديناميكية تمامًا تعمل على توحيد مصادر الإضاءة الثابتة والديناميكية.

كم عدد الأشعة التي ينبعث منها Q2VKPT لكل بكسل؟


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

هل تستخدم Q2VKPT التنقيط؟


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

Source: https://habr.com/ru/post/ar436754/


All Articles