الرئيسية » العاب » الإضاءة في الألعاب .. من الماضي الي المستقبل .. الي أين؟

الإضاءة في الألعاب .. من الماضي الي المستقبل .. الي أين؟

بواسطة محمد عبد الحميد (Hameedo) في 28 October,2018
featured image

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

يمكن تلخيص تطور الإضاءة في أنها ساحة حرب مفتوحة علي جبهتين، جبهة الاضاءة التفاعلية Dynamic Lighting، وجبهة الاضاءة الساطعة High Range.

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

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

اضاءة وظلال ثابتين Static للبيئة والشخصية، والشخصية تقف في الظل ومع ذلك تظل مضيئة!

ثم حدثت الطفرة مع ابتكار خوارزميات الاضاءة الحسابية .. والتي أتاحت أن يشع أي جسم ضوءا ويسقطه مباشرة علي ما حوله من أجسام، فيتأثروا به .. ومكن هذا المطورين من عمل اضاءات تفاعلية حقيقية Dynamic Lighting.

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

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

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

اضاءة المشاعل ..

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

اضاءة الصواعق الكهربية ..

اضاءة النيران ..

انتقل المطورون بعد ذلك الي مرحلة أكثر دقة، وهي اتاحة أن تكون الاشتباكات والاقتتال مصدرا للعشرات من الأنوار، فبدأوا بوهج الأسلحة والبنادق والمدافع Muzzle Flashes .. واعطوا لها القدرة علي بث الضوء علي ما حولها .. كذا الأمر مع الانفجارات Explosions، و القذائف Projectiles مثل الصواريخ والأسهم المشتعلة وكرات الطاقة .. الخ.

اضاءة الانفجارات Explosions .. الي اليمين بدونها، والي اليسار بها ..

اضاءة وهج الأسلحة Muzzle Flash .. انظر كيف تؤثر علي السلاح ويد صاحبه والوحش ..

    اضاءة القذائف، والقذيقة هنا تضئ كل ماحولها في طريقها الي الهدف ..

بل إنهم اتاحوا ان يعامل الرصاص كمصدر للضوء الناتج من احتكاكه بالمعادن والحوائط .. الاحتكاك الذي يولد شررا وضوءا ينير ما حوله.

اضاءة احتكاك الرصاص بالأرضية المعدنية Bullet Impact Lighting، لاحظ انعكاس الضوء علي الأرضية والحائط ..

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

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

فتح هذا الباب أيضا أمام تأثر جسيمات الدخان بالأضواء المارة خلالها أو حولها Smoke Lighting، الأمر الذي كان غير ممكنا من قبل، لكنه أصبح متاحا الآن .. والدخان مثلا يصير متوهجا اذا ما خالطه مصدر ضوء بداخله كشعلة نار أو ما شابهها.

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

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

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

مع تطور العتاد، وزيادة عرض معالجاته واحكامه الحسابي، أصبح كل هذا ممكنا، وهنا تولدت اضاءة التراوح الكبير للسطوع High Dynamic Range .. والتي مكنت كل الأجسام والأماكن من التوهج والسطوع بما يفوق ما كان ممكنا من قبل أضعافا مضاعفة .. واتاح هذا محاكاة واقعية للسماء والشمس والأضواء الصناعية.

الإضاءة الساطعة HDR

تلا ذلك تمكن المطورين من رسم أشعة الضوء المجسمة وهي تنفذ من خلال الثغرات وحول حواف الأجسام والدخان والتراب ..الخ ، لتضئ ما ورائهم أو حولهم .. سميت هذه الاضاءة، اضاءة الأشعة النافذة Light Shafts أو الاضاءة المجسمة Volumetric Lighting اشتقاقا من وسيلة رسم تلك الأشعة التي اعتمدت علي معاملة الضوء ككتلة ذات حجم حقيقي تتفاعل مع الأجسام.

أشعة الضوء النافذة Light Shafts / الاضاءة المجسمة Volumetric Lighting

ثم تلا ذلك مباشرة محاكاة توهج الأضواء الصناعية والطبيعية في مواجهة العين .. وسمي هذا باسم وهج العدسات Lens Flare. وهو تأثير زيادة سطوع الضوء اذا ما كان أمام العين أو عدسة الة التصوير مباشرة. هو يحاكي أيضا ما نراه في حياتنا الواقعية. خصوصا اذا نظرت الي الشمس في الظهيرة.

توهج الاضاءة أمام العدسات والعيون Lens Flare ..

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

وباكتمال الإضاءة الساطعة والإضاءة التفاعلية، انفتح الباب علي جبهة الصراع القصوي، جبهة الإضاءة الشمولية Global Illumination. وهي الجبهة التي تدمج كل الجبهات معا في بوتقة واحدة.

والإضاءة الشمولية Global Lighting تعتبر امتداد لجبهة الإضاءة التفاعلية، ولكن من جهة عكسية، فالاضاءة التفاعلية تهتم بالضوء الصادر من مصادر الاضاءة المختلفة (كالشمس والمصابيح ..الخ)، لكن الاضاءة الشمولية تهتم بالضوء الصادر من الأجسام الأخري العادية غير المضيئة. الاضاءة الشمولية أيضا هي امتداد للاضاءة الساطعة، لأنها تزيد من سطوع الضوء أكثر وأكثر، وترفع درجة تباين اضاءة المشاهد، باظلام أجزاء منها ورفع درجة سطوع أجزاء أخري!

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

ونتيجة لهذا فان الاضاءة الشمولية تزيد من واقعية الاضاءة والظل بشكل عام، وتزود الألعاب باضاءات تنافس عروض الرسوم المسجلة CGI التي تحاكي العالم الواقعي، لكن هذا سيأتي علي حساب الأداء بالطبع!

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

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

الي اليسار بدون الاضاءة الشمولية، والي اليمين بها، لاحظ كيف اكتسبت الحوائط اضاءة اضافية نتيجة انعكاس الضوء من علي أسطح الكرات الزجاجية.

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

لهذا يقوم المطور بحساب الاضاءة الشمولية مسبقا للاجسام الثابتة، وطباعتها طبعا عليها baked static Global Illumination. مثلها مثل الاضاءة الثابتة Static Lighting التي ذكرت في أول المقال.

الفرق بين الاضاءة العادية (الأعلي) والاضاءة الشمولية (الأسفل)، انظر كيف اكتسبت النباتات الواقعة في منطقة الظل علي اليسار اضاءة اضافية ..

Watch_Dogs تحوي اضاءة شمولية للاجسام الثابتة Static، فعلي الرغم من وقوع الشارع في منطقة الظل، الا أنه مضاء باضاءة خافتة، نتيجة انعكاس اشعة الشمس من علي الحوائط والجدران.

نفس الشئ مع هذا الزقاق في لعبة Assassin’s Creed Unity

مشهد من لعبة Call Of Duty Ghosts يظهر فيه تأثير الاضاءة الشمولية

يطلق علي الاضاءة الشمولية Global Lighting اسم آخر هو الاضاءة غير المباشرة Indirect Lighting، وهو مصطلح أكثر دقة من الناحية العلمية كونه يصف خصائص التقنية بشكل صريح. فالضوء ينتشر معها في كل الاتجاهات المباشرة وغير المباشرة. وكنتيجة لانتشار الضوء في كل مكان، حتي أماكن الظل، فانه يكون ظلالا اضافية حتي فوق الظلال الأصلية، ويطلق علي تلك الظلال اسم الظلال غير المباشرة Indirect Shadows، أو الظلال البينية. وأحيانا يطلق عليها اسم الاظلام الشمولي Ambient Occlusion.

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

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

لاحظ الظلال الخفيفة حول اليد والسيف (تم تحديدها بالحواف الحمراء)، والتي يتم رسمها باستخدام الظلال الشمولية ..
 الي اليمين بلا أي ظلال شمولية، والي اليسار باستخدام الظلال الشمولية، لاحظ الظلال الخفيفة حول حواف العمدان، وعلي الأرضية بجوار النباتات.

الي اليمين بلا أي ظلال شمولية، والي اليسار باستخدام الظلال الشمولية، لاحظ الحواف الداكنة حول الجدران ..

الي اليمين بلا أي ظلال شمولية، والي اليسار باستخدام الظلال الشمولية ، لاحظ الظلال الداكنة تحت فروع الأشجار ..

للتقنية درجات مختلفة :  SSAO و HDAO وHBAO و +HBAO و هناك VXAO كذلك، والأخيرتين مقدمتين من NVIDIA وهما جزء من مكتبة GameWorks الخاصة بها.

تعتبر VXAO أقصي درجات الاظلام الشمولي، لاحظ كيف تضيف اظلام اضافي وواقعي مقارنة بـ +HBAO

VXAO vs HBAO+

تعتبر VXAO أقصي درجات الاظلام الشمولي، لاحظ كيف تضيف اظلام اضافي وواقعي مقارنة بـ +HBAO

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

المرحلة القادمة من الاضاءة الشمولية، هي مرحلة رسم الألعاب باضاءة شمولية تفاعلية Dynamic، سنترك الثبات الذي اضطررنا لاستخدامه لتوفير الأداء، وننطلق الي التفاعل الحقيقي، سيصبح بامكان الأجسام المتحركة التأثر بالضوء الشامل .. وسيتحقق هذا عن طريق تقنية تتبع الأشعة Ray Tracing، مثل تقنية RTX التي تقدمها NVIDIA.

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

الفرق بين الاضاءة العادية المباشرة بالأعلي، والاضاءة الشمولية غير المباشرة (بتتبع الأشعة) بالأسفل

           اضاءة شمولية ثابتة في الأعلي، مقابل اضاءة شمولية تفاعلية بالأسفل، لاحظ كيف تتأثر المنضدة في المنتصف والسقف بأشعة الشمس بشكل واقعي

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

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

/* ]]> */