عندما كشفت شركة Epic عن محرك التطوير الجديد Unreal 5، كان الكشف من خلال عرض تقني حمل الاسم Lumen in the Land of Nanite. لومين هو محرك الإضاءة الخاص بأنريل 5 أما نانيت فهو مُحرّك الجيومتري. الإضاءة هي عنصر لا يتجزأ من عملية الRender و من عملية رسم أي صورة فالظلال على سبيل المثال تقوم بتثبيت الأشياء في المشهد (grounding) و تُعطي الكتلة الإحساس بالوزن و الواقعية و بدون الظل تبدو الأشياء طافية في الهواء. الضوء ينعكس و يرتد حول الأجسام أيضًا و ينقل معه معلومات اللون و بدون تصوير انعكاس الضوء بالشكل الصحيح لن يكون المشهد مكتملًا. لسنوات طويلة اعتمد مطورو الألعاب على تقنيات عديدة لمحاكاة الضوء و الظل في الألعاب مع اتباع أساليب التنقيط بطرق متعددة، هذه الطرق محدودة جدًا و غير قادرة على محاكاة الطريقة التي يتصرف فيها الضوء بواقعية. هنا يأتي دور لومين من انريل 5، لومين هو محرك الإضاءة التلقائي في أنريل 5 و هو يستبدل تقنيات قديمة مثل SSAO بالكامل. لومين هو محرك للإضاءة المنتشرة و الانعكاسات معًا في الزمن الحقيقي (global illumination and reflections) و هو يستخدم تتبع الأشعة بطرق برمجية (software based ray tracing solution).
من خلال هذا المقال سنسلط الضوء على لومين و كيف سينقل الإضاءة في عالم الألعاب إلى مستويات غير مسبوقة و سنوضح لماذا يشعر مطورو الألعاب بحماس كبير تجاه هذا المحرك. قبل أن نقوم بتناول لومين علينا أن نوضح أولًا الإضاءة الديناميكية في الألعاب و مزاياها مقابل الإضاءة غير الديناميكية.
الإضاءة الديناميكية
الإضاءة الديناميكية ترتبط بالأجسام المتحركة التي يتغير موقع الظل الخاص بها، كما ترتبط بالإضاءة القادمة من الشمس و القمر مع تغير موقعهما باستمرار في دورة الليل و النهار. الألعاب أحيانًا تحاول التركيز على الإضاءة الديناميكية الخاصة بشخصية اللاعب مثلًا أو الأجسام المتحركة في المشهد أما بقية الأجسام فهي لا تحصل على نفس المعاملة و إنما تحصل على ظلال جامدة ثابتة في مكانها لا يمكن أن يتغير موقعها. الألعاب في العادة تدمج بين الإضاءة الديناميكية للأجسام المتحركة و الظلال الثابتة للأجسام غير المتحركة من أجل توفير الأداء و عدم الحاجة إلى حساب معلومات هذا الظل الثابت في الزمن الحقيقي فهو ثابت في مكانه و لا يتغير، الألعاب الخطية مثال جيد على هذا حتى تلك بتصنيف AAA. ألعاب العالم المفتوح تواجه تحديًا أكبر بكثير في التعامل مع مصادر الإضاءة المختلفة بما يتضمن الإضاءة الطبيعية.
يمكننا أن نتخيل أن الإضاءة الديناميكية يُمكن لها أن تعطي معلومات أكثر واقعية و قابلية للتصديق عن المشهد في اللعبة. لدينا على سبيل المثال لعبة عالم مفتوح مثل Xenoblade Chronicles X على الوي يو، أحد الأشياء التي لفتت انتباهنا في عالم اللعبة الضخم و الجميل أنه غير ديناميكي و بالتأكيد كانت هذه طريقة المطورين في التعامل مع عتاد الوي يو المحدود. تدعم اللعبة دورة الليل و النهار في عالمها و لكن ليس هناك أي تغير يطرأ على ظلال الأشجار أو الهضاب و الصخور في عالم اللعبة فهي ليست ديناميكية و إنما جامدة في مكانها و لا تتغير حتى بتغير موقع الشمس و الغروب ثم يختفي الظل ببطء مع حلول الظلام. الألعاب أيضًا تواجه صعوبة كبيرة في التعامل مع الإضاءة المنتشرة من مصادر الضوء الاصطناعي (مثل المصابيح و النيون) و تأثيرها على الإضاءة و هي غير قادرة في العادة على التقاط الظلال التي تتسبب فيها مصادر الإضاءة الاصطناعية هذه.
الألعاب اعتمدت لفترة طويلة على تقنيات مختلفة للتحايل على محدوديات الإضاءة بالتنقيط و لكن النتائج لم تكن رائعة دائمًا، و الآن يأتي الحل عن طريق لومين لحساب الإضاءة في الزمن الحقيقي.
لومين لا يحتاج إلى هاردوير تتبع الأشعة
لومين يأتي لتغيير هذا و يعد بتقديم إضاءة واقعية من خلال تتبع الأشعة على مستوى السوفتوير، و عندما نقول على مستوى السوفتوير فهذا يعني أن حسابات تتبع الأشعة التي يقوم بها لومين تُنفذ مع باقي الحسابات الرسومية عن طريق المعالج الرسومي المعتاد و لا تحتاج إلى هاردوير تتبع الأشعة مثل أنوية تتبع الأشعة في بطاقات نفيديا الرسومية أو بطاقات AMD. نعم لومين و ألعاب أنريل 5 يُمكن لها في حقيقة الأمر أن تعمل حتى على هاردوير لا يدعم أنوية تتبع الأشعة و لكنها أقل دقة من تتبع الأشعة على صعيد الهاردوير إذ إنها لا تستطيع التعامل على مستوى البكسل مثل تتبع الأشعة الذي يستخدم الهاردوير و إنما على مستوى الأجسام كاملة أو الmeshes. الصعوبة لا تكمن فقط في تصوير إضاءة المشهد و الظل و اللون بالشكل الصحيح، و لكن أيضًا أداء هذه الحسابات المعقدة بطريقة يستطيع الهاردوير أن يتعامل معها، فهي حسابات معقدة و مكلفة جدًا في الأداء. أنريل 5 لا يستهدف دقة 4k حقيقية على أجهزة الجيل الجديد و إنما سيقوم برفع الدقة عن طريق تقنية خاصة به.
على أية حال، كيف يقوم لومين بحساب الإضاءة في المشهد؟ هناك 3 طرق يقوم لومين من خلالها بحساب إضاءة المشهد، يقوم لومين بإطلاق الأشعة على المشهد و حساب معلومات الضوء و الظل و درجة اللون و ارتدادات أشعة الضوء و المعلومات اللونية التي يحملها بشكل دقيق باستعمال 3 طرق مختلفة، و هذه الطرق تعمل معًا في ذات الوقت. الطريقة الأولى تُسمى Global Distance Fields و هي الأسرع في التنفيذ إلا أنها الأقل دقة في معلومات الضوء و هي تتعامل مع الأجسام الكبيرة في المشهد مثل الأبواب و الجدران في غرفة كبيرة و قادرة على تقديم هيكلية بسيطة لها. الطريقة الثانية هي Mesh Distance Fields و هي تجلب تفاصيل أكثر للمشهد و معلومات ضوئية للأجسام الموجودة فيه على مسافة مترين من اللاعب و هي أبطأ في التنفيذ من الأولى. الطريقة الثالثة تُسمى screen tracing و هي تجلب معلومات ضوئية دقيقة للأجسام المرئية و التي تدخل ضمن زاوية الرؤية للاعب من ضمنها حواف الأشياء و الظل الناجم عن هذه الحواف (ما كانت تقوم به خاصية screen space ambient occlusion في السابق).
(الانعكاسات و الإضاءة المنتشرة من خلال لومين)
الطرق الثلاث تتكامل معًا و النتائج المبدئية تبدو مدهشة جدًا و أفضل بمراحل من الطرق السابقة و هي قادرة على التقاط الانعكاسات حتى للأجسام التي تقع خارج نطاق رؤية اللاعب لكنها تترك انعكاس داخل كاميرا اللاعب (انعكاس بناية مجاورة على سطح عاكس مثلًا)، فكرة وجود لومين كأداة للمطورين في أي لعبة هي لوحدها تصور التطور الذي يمكن أن تحققه ألعاب أنريل 5 مقارنة بالمحرك السابق أنريل 4 بل و حتى بمحركات الألعاب الأخرى لأضخم عناوين الAAA و التي لا تستخدم جميعها تقنيات تتبع الأشعة حتى على مستوى السوفتوير لحساب الإضاءة المنتشرة و الانعكاسات. و على ذكر الانعكاسات، فإن لومين يستخدم ذات الأشعة التي يقوم بإطلاقها على المشهد لحساب معلومات الضوء المنتشر و لحساب معلومات الانعكاسات في ذات الوقت. حسنًا، هذه الطرق ما زالت مكلفة جدًا كعمليات حسابية و لم تكن نتائج الأداء مقبولة في البداية حتى أتى الحل من مهندسي إيبك.
الحل الذكي أتى من مهندسي ايبك عن طريق ما يُسمى بالSurface Cache. ببساطة شديدة، يقوم لومين بالتقاط معلومات الأسطح القريبة الموجودة في المشهد من كل الزوايا و تخزينها عن طريق ما يُسمى بالcards، هذه المعلومات تُرسل إلى البطاقة الرسومية و تحجز مئات من الميغابايتس فقط، و بالتالي فإن معلومات الإضاءة الخاصة بالمشهد تُخزن في البطاقة الرسومية بالفعل لاستخدامها عند الحاجة إليها و لاختصار العمليات الحسابية و تسريعها بالبحث عن هذه الcards و حساب الإضاءة و الظل الخاصة بها عن طريق لومين، و يتم تجديد هذه الذاكرة بمعلومات جديدة بعد ذلك و تتكرر هذه العملية باستمرار.
بقولنا ذلك، نود أن ننوه إلى أنّ آنريل 5 يدعم تتبع الأشعة عن طريق الهاردوير كما رأينا في العديد من الألعاب التي تستخدم DXR على الحاسب الشخصي و كذلك الأجهزة المنزلية للجيل الجديد، لكنها أبطأ في التنفيذ و أكثر استهلاكًا لموارد الأجهزة من السوفتوير، و إن كانت تأتي بنتائج أكثر دقة على مستوى البكسل، كما إنها لا تواجه المحدوديات التي يواجهها لومين و التي سنأتي على ذكرها.
ما الذي يقوم به لومين؟
دعونا نتحدث ببساطة عن بعض الأشياء الرائعة التي يستطيع لومين أن يقوم بها:
يمتلك لومين القدرة على التعامل مع الإضاءة الطبيعية مثل الناجمة عن أشعة الشمس و تأثيرها على المشهد و تغيير موقعها مع تغير موقع الشمس خلال دورة النهار. كما يتفاعل الضوء مع تغير مواقع الأشياء في عالم اللعبة و يستطيع تقديم معلومات الظلال بشكل دقيق و ديناميكي. إليكم المزيد من التفاصيل:
– تسرب اللون (color bleeding)
يستطيع لومين في آنريل 5 التعامل مع تسريب الألوان، على سبيل المثال إن كان لدينا مجسم أزرق اللون تعرض لإضاءة الشمس فإن الضوء المرتد عنه سيحمل اللون الأزرق قليلًا إلى الأسطح المجاورة له.
هذه الصورة توضح الفكرة نسبيًا، على اليمين نستطيع أن نلاحظ تسرب اللون من الجدارين الأحمر و الأزرق إلى الأسطح البيضاء مع ارتدادة ضوء واحدة. عندما نقول أن لومين قادر على محاكاة هذا التأثير فهذا مذهل جدًا لأنه سيؤثر على درجة لون البيئة بالكامل في الألعاب، و ليس مناطق أو مواقع محددة فحسب تحاول أن تحاكي هذا التأثير، و سيعطي أسطح أكثر دقة بكثير في الألوان في كل عالم اللعبة.
– الظلال غير المباشرة
يستطيع لومين رسم ظلال ناعمة للأجسام في الخلفية التي لا تتعرض للإضاءة بشكل مباشر، و إنما تتعرض للإضاءة من ارتداد الضوء. في السابق استخدمت الألعاب تقنية تقريبية لمحاكاة هذا التأثير هي screen space ambient occlusion لكنها لم تكن دقيقة. لومين قادر على ذلك و قادر على تنفيذ الظلال للأجسام الصغيرة أو البسيطة بدقة كبيرة و هو يستبدل الSSAO بالكامل.
– ارتدادات الضوء
العبقرية في لومين أنه لا يتعامل مع ارتدادة واحدة للضوء بل يملك القدرة على التعامل مع ارتدادات عديدة للضوء في المشهد من مصادر ضوء متعددة يؤدي إلى زيادة واقعية المشهد و دقة و صحة المعلومات اللونية فيه. كيف يحصل ذلك؟ يقوم لومين بحساب معلومات الضوء و الظل على مدار عدة إطارات (frames) ثم يقوم بجمع كل هذه المعلومات و عرض النتيجة النهائية. بالطبع ليس هذا ما يحصل في عالمنا الواقعي إذ إن سرعة الضوء تصل إلى 300 مليون متر في الثانية. نظريًا نحن نرغب أن تتمكن محركات الألعاب من حساب معلومات الإضاءة في المشهد في إطار واحد و لكننا لم نصل إلى هذه المرحلة بعد.
– مصادر الضوء الاصطناعي
في ألعاب الفيديو مصادر الضوء الاصطناعي لا تؤثر على عالم اللعبة إلا عن طريق تزييف التأثير على المشهد، و لكن على سبيل المثال لا يمكن لمقعد أسفل عامود إنارة أن يكوّن ظلًا أسفل المقعد. لومين يغير ذلك كليًا و هو تمكن أخيرًا من التعامل مع مصادر الإضاءة الاصطناعية و محاكاة تأثيرها على المشهد و الظلال التي تتسبب بها، و هذا يعني أيضًا أن تحريك مصادر الضوء الاصطناعي هذه سيؤدي إلى تغيير موقع الظل. دعونا نتخيل شخصية في لعبة تحمل مشعلًا، نظريًا، في أنريل 5 يُمكن لهذا المشهد أن يتسبب بالظلال للأجسام التي تمر بها الشخصية و هي تحمل المشعل في الزمن الحقيقي، تغيير موقع الشخصية و المشعل سيؤدي إلى تغيير موقع الظل.
– مصادر الضوء الطبيعي
يستطيع لومين أن يحاكي تأثير ضوء الشمس و ضوء القمر على البيئة و تغير موقعها في الزمن الحقيقي، بما يتضمن الإضاءة غير المباشرة و الانعكاسات على الأسطح الصغيرة.
محدوديات لومين
لا شيء كامل أليس كذلك؟ رغم روعة لومين و النتائج التي يحققها إلا أن هناك محدوديات يجب التعايش معها أو محاولة خلق حلول مختلفة لها. إليكم بعض هذه المحدوديات:
– يواجه لومين صعوبة في التعامل مع مصادر الضوء الاصطناعي الصغيرة جدًا.
– لا يستطيع لومين التعامل مع الmeshes الديناميكية (مثل أمواج الماء). مما يعني أن لومين لن يكون قادرًا على تطبيق الانعكاسات على سطح الماء مثلًا، و هو أمر تستطيع تقنيات تتبع الأشعة التي تعتمد على الهاردوير التعامل معه بالفعل، كما رأينا في بعض الألعاب على الحاسب الشخصي مثل Cyberpunk 2077. لومين لا يستطيع تنفيذ الانعكاسات لأنواع معينة من الأسطح أيضًا
– لومين فعال جدًا مع البيئة المدنية لكنه ليس كذلك مع البيئة الطبيعية، إذ إنه من الصعب جدًا أن يخزن لومين معلومات الإضاءة الخاصة بمشهد مليء بآلاف أوراق الأشجار و الأغصان و غيرها من الأجسام الصغيرة جدًا من خلال الsurface cache الذي تحدثنا عنه.
القفزة كبيرة جدًا
القفزة التي يحققها لومين مقارنة مع طرق الإضاءة القديمة مذهلة و ضخمة جدًا، لومين قادر على الوصول إلى نتيجة قريبة جدًا من الإضاءة الواقعية التي يستطيع أن يحققها تتبع الأشعة على مستوى الهاردوير، لومين ليس كاملًا إلا أنه يقترب كثيرًا من مستوى الكمال. إليكم هذا الاختبار الصغير:
قام أحد المصممين على اليوتيوب بتصميم مشهد على أنريل 4 و تطبيق تتبع الأشعة عن طريق الهاردوير، ثم قام بتصميم نفس المشهد على آنريل 5 باستخدام لومين الذي يطبق تتبع الأشعة عن طريق السوفتوير للمقارنة بينهما. بناء على جميع الملاحظات التي ذكرناها، هل تستطيعون معرفة أي من التصميمين يستخدم تتبع الأشعة على مستوى الهاردوير و أيهما يستخدم لومين؟ شاركونا الإجابة من خلال التعليقات.