الظلال في الألعاب .. من الماضي الي المستقبل .. الي أين؟
لربما كانت الظلال Shadows أكثر الخصائص الرسومية التي يظهر فيها تطور الرسوميات ظهورا واضحا وصريحا .. فعلي العكس من معظم الخصائص الأخري، فقد بدأت الظلال في الألعاب من الصفر، حرفيا من اللاشئ ثم تطورت حتي أصبحت عالما معقدا ومكتملا بذاته!
بدأت الألعاب الثلاثية الأبعاد بلا أي نوع من الظلال علي الاطلاق، ولا حتي شعرة من الظل لا للجماد او الشخصيات، لا للبيوت أو الشجر أو حتي الحجر أو أي شئ! كانت القدرات العتادية محدودة جدا، ولم يكن هناك ترف لشئ ثانوي اسمه الظلال!! دعك من أن المحركات الرسومية وبرامج التصميم الثلاثي الأبعاد لم تكن تعرف كيف تصمم ظلالا من الأصل، ولا كيف تحسبها أو ترسمها، والذين ظنوا أن الظل أمر هين حينها اصابتهم الصدمة من التعقيد الحسابي المطلوب لمحاكاة ظلال العالم الواقعي، تعقيد يفوق أي مؤثرات بصرية أخري، يفوق حتي الاضاءة و الانعكاسات!
اضطر المطورون في ذلك الوقت الي الاعتماد علي رسم البيئة بظلالها بأنفسهم (دون الاعتماد علي محرك اللعبة) .. وهنا تطبع الظلال طبعا علي الوان البيئة .. كظلال ثابتة Static Shadows .. لا تتزحزح .. فترسم الأرضية مثلا مظلمة لانها ستقع في ظل جسم آخر سيرسمونه فيما بعد، وذلك بدلا من ان تكتسب الظل نتيجة الاضاءة وموقع الجسم ..
لم تكن تلك الوسيلة الرخيصة لتصلح الا مع الاجسام الثابتة والاضاءة الثابتة ، فاذا تغير موقع اي من الجسم او الاضاءة ، فان الظل لن يتغير لانه مطبوع طبعا علي البيئة .
ولتقريب الصورة نتخيل ان المطور قام بطلاء ظله علي الأرض باللون الأسود في يوم مشمس لأنه سيقف في هذا الموقع في اللعبة ، اذا رحل المطور او اذا ذهبت الشمس فان ظله الأسود سيظل ثابتا في مكانه لانه مجرد طلاء وليس ظلا حقيقيا.
ولما كانت تلك الوسيلة الرخيصة لا تصلح مع الأجسام المتحركة التي تعج بها الألعاب، فقد كانت محدودة التأثير حقا ولم تكن تغني أو تسمن من جوع. سوي مع بعض البيئات أو المشاهد ذات زاوية التصوير الثابتة.
ظلال ثابتة لقبة الجسر، مطبوعة طبعا علي الأرضية، و باقي البيئة لا تحوي أي ظلالا من أي نوع لا للشخصيات أو الجوامد الأخري ..
ثم انتقل المطورون الي مرحلة الظلال البسيطة Crude Shadows .. وهي رسم دائرة سوداء فقيرة تحت الأجسام المتحركة كتعبير عن الظل .. بغض النظر عن شكل او طبيعة هذا الجسم .. واستخدمت تلك الوسيلة بكثرة مع الشخصيات .. وبالطبع كانت مثيرة للشفقة.
Blop Shadow
المرحلة التالية كانت الظلال الوهمية Fake Shadows، وتم الحصول عليها عن طريق رسم الشخصيات والاجسام مرتين! مرة كجسم كبير ثلاثي الأبعاد مكتمل، ومرة ثانية كجسم مسطح ثنائي الأبعاد مضغوط وأسود، ليتم استخدامه كظل للجسم الأول!
بالطبع كانت طريقة ساذجة وتنتج ظلال مليئة بالعيوب والأخطاء .. وخصوصا علي الأرضيات غير المسطحة وعند تداخل الظلال فوق بعضها البعض، أيضا لم تكن تسمح بانطباق الظلال علي الشخصيات أو الاجسام الاخري، مثلا أن يقع ظل شجرة علي وجه البطل .. لكنها كانت أفضل من لا شئ بالقطع.
ظل الشخصية يظهر اسفل الباب ومن الناحية الأخري بدلا من أن يتم اسقاطه علي الباب نفسه ! هذا لأن الظل مجرد جسم مسطح ثنائي الأبعاد Flat Character Shadows ينزلق تحت الباب بسهولة!
ثم انتقل المطورين لمرحلة الظلال الحقيقية، بعد أن تطور العتاد ليصبح بالقوة الكافية، وفيها يتم اعتبار مصادر الضوء كعيون افتراضية Artificial Eye تنظر للمشهد من مكان خروج الضوء، اذا وقع بصر العين الافتراضية علي أي جسم أو جزء من جسم أو سطح فهو في الضوء، اما الاجسام أو الأسطح أو الأجزاء منهم التي لا يقع عليها البصر الافتراضي فانها تعتبر في الظل. وتلون بلون الظل.
والطريف في الأمر أن رسم الظل هنا لا علاقة له بالضوء حقا، فهو لا يرسم بالاعتماد علي أن الضوء يسقط ظلا من الأجسام التي يسطع عليها! ولكنه يرسم بطريقة ماكرة غير مباشرة، بالاعتماد علي أن الضوء غير موجود اذن فالظل موجود مكانه! وهي خدعة حسابية بالأساس سهلت من رسم الظلال كثيرا.
ولقد اعتبر هذا الاكتشاف فتحا عظيما، وأدي الي عمل ظلال متحركة وتفاعلية Dynamic Shadows لأول مرة لكل الأجسام، سواء شخصيات أو جوامد. وسمي هذا الاكتشاف بأسماء عديدة، مثل Shadow Mapping و Shadow Volumes.
ظلال حقيقية لها نفس شكل الجسم الأصلي وتتحرك معه وتنعكس علي الحوائط والأرضيات مثل أي ظلال حقيقة ..
وأتاح هذا الاكتشاف أيضا للظلال أن تنطبق وتتداخل فوق بعضها. وان تظلل الأجسام الأخري. وفتح هذا الباب أمام عمل بيئات بدورة نهار وليل كاملة، بكل مستويات الاضاءة والتظليل اللازمة. فالشمس الآن تعتبر مصدر اضاءة وظلال شامل. وأتاح أيضا اسقاط الظلال من كل المصابيح والمصادر الضوئية صغيرة كانت أو كبيرة، حتي لو كانت كثيرة العدد. وفتح الباب أيضا أمام اسقاط ظلال من عدة مصادر ضوئية في وقت واحد.
ظلال متعددة Multiple Shadows لنفس الجسم (العنكبوت) ناتجة عن مصادر ضوئية مختلفة ..
الي هذا الحد ، كانت الظلال خشنة وحادة الحواف، فحان وقت تنعيم حوافها Soft Shadows لتصير أقرب للواقع. ولقد اسُتعملت تقنيات ترشيح Filtering لونية كثيرة لهذا الغرض، حتي أصبحت الحواف ناعمة فعلا.
الظلال الناعمة Soft Shadows الي اليمين، والخشنة الي اليسار ..
وعندما تطور العتاد أكثر وأكثر، استعمل المطورون نفس الوسيلة لتمكين ان يظلل الجسم نفسه Self Shadow، مثلا أن يظلل وحه البطل رقبته وصدرهاو أن تظلل خوذته جبهته وعينه.
لاحظ ظلال الأنف وظلال الذقن، وكيف يظللا وجه الرجل ورقبته وكتفه الأيسر!
ومع مقدم العاب مثل Doom 3 وتطور العتاد بشكل أكبر، استطاع المطورون اتاحة ظلال تفاعلية من الكشافات والمشاعل Flashlight Shadows التي يحملها اللاعب والشحصيات الأخري، وحققت هذه الخاصية تأثيرات بصرية غاية الروعة والواقعية.
ظل الكشاف في لعبة DOOM 3
ظلال ناتجة من كشافات مقدمة السيارة Car Headlight Shadows ..
بل زاد البعض في المزيد من الابهار، وأتاحوا أن تسقط الأنوار الخاطفة والسريعة ظلال تفاعلية، مثل وهج الأسلحة والبنادق Muzzle Flashes Shadows، حتي وصل الحال الي اسقاط ظلال من وهج الانفجارات Explosions Shadows .
وهج السلاح الآلي Muzzle Flash هو الاضاءة الوحيدة في هذه الغرفة، لاحظ كيف يؤثر علي الصندوق الأبيض ويسقط منه ظلا علي الحائط خلفه ..
أنوار انذارية دوارة خاطفة تسقط ظلالا علي البيئة المحيطة في لعبة Crysis 3 ..
ظلال ناتجة عن انفجار مفاجئ في البيئة في لعبة Metro Last Light ..
ظلال ناتجة من مسدس وهج Flare Gun..
ثم رفع المطورون من عامل الواقعية، وأتاحوا للشظايا والأجسام الصغيرة مثل الحطام والكسرات والهشيم أن يكون لها ظلالا خاصة بها Debris Shadows .. وانظر كيف وصلنا من عدم القدرة علي رسم ظل واحد، الي رسم ظلال لأصغر وأتفه الأجسام.
بل أن المطورين أتاحوا رسم ظلالا علي الأرض للسحب في السماء Cloud Shadows، وتتحرك تلك الظلال مع حركة السحب.
توقف المطورون اليوم عند مرحلة ظلال الجسيمات الدقيقة Particle Shadows (والتي هي أصغر من الحطام والهشيم)، مثل جسيمات الدخان والضباب ورذاذ الماء .. وكان المطورون يتجاهلون تلك الأجسام في السابق لصالح التركيز علي أجسام أخري أكثر أهمية، فلم تكن تلك الأجسام تقسط ظلالا، لا علي نفسها ولا علي البيئة حولها .. لكن مع تطور العتاد اهتم المطورون بجسيمات الدخان من جديد وقاموا بتفعيل كل مؤثرات الظلال الخاصة بها Smoke Shadows. فأصبحت تتأثر بظلال الأجسام الأخري وتظلل نفسها، وتسقط ظلالا علي ما حولها .. لكن هذا لا يزال غير متاحا لجسيمات رذاذ المياه، علي الأقل حتي الآن.
الي هذا الحد وقد وصل المطورون الي شبه الكمال تقريبا في محاكاة ورسم الظلال، أكثر المطورين مشغول الآن بمحاكاة الجوانب الثانوية في مظهر الظلال، مثل ان تكون حوافها خشنة وحادة بالقرب من الضوء وناعمة مموهة عندما تكون بعيدة .. وهو مايسمي باسم Contact Hardening Shadows أو ظلال خشونة التلامس.. بمعني أن تكون الظلال خشنة وحادة عند تلامسها مع الجسم، ثم تكون ناعمة ومموهة كلما ابتعدت عنه، وهي الظلال التي تظهر في العالم الحقيقي بالضبط.
وتعمل هذه الظلال حاليا من خلال تقنيات مثل PCSS و HFTS وهي تقنيات مقدمة من NVIDIA وتابعة لمكتبة GameWorks الخاصة بها. كما أن تقنية تتبع الأشعة Ray Tracing ستعطي نفس التأثير أيضا في محاكاة الظلال. وتوفرها NVIDIA أيضا من خلال تقنية RTX التابعة لها.
لاحظ كيف تبهت وتتموه ظلال المجسمات كلما ابتعد الظل عن الجسم
لاحظ كيف أصبحت ظلال الشجرة الي اليمين مموهة وناعمة جدا كلما ابتعدت عن الشجرة ..
تطور آخر منتظر هو زيادة عدد الأجسام التي تسقط ظلالا، وعدد الأنوار التي يسقط منها الظلال. ففي السابق كان المطورون يختصرون من عدد الظلال لزيادة أداء عرض الألعاب، فالأجسام الصغيرة والثانوية (كالأعشاب القصيرة والأوراق ..الخ) لم تكن تسقط ظلالا، كما أن الأنوار الصغيرة والثانوية (كالشموع الصغيرة أو شرر النيران الضئيل) لم تكن تسقط ظلالا أيضا .. اعتمادا علي أن اللاعب لن يلاحظ هذا. ومن ضمن تلك الأجسام التي تظلم عادة، هي تلك الأجسام الشفافة مثل المياه والضباب والتراب ..الخ. والأجسام الشفافة عادة ما تمثل تحديا رسوميا شديدا، فبعضها يتطلب رسم ظلال شفافة Translucent Shadows، مثل المياه والزجاج! وبعضها يتطلب رسم ظلال ثلاثية الأبعاد 3D Shadows، مثل الضباب والتراب.
ومن المنتظر أن تحل تقنية تتبع الأشعة RTX كل هذه النواقص بضربة واحدة، فهي قادرة علي رسم الظلال الشفافة والظلال المجمسة ثلاثية الأبعاد في كتل الضباب والتراب، كما أنها تعطي القدرة لأي مصدر اضاءة مهما صغر حجمه علي اسقاط الظل علي أي جسم أخر مهما صغر حجمه.
والسبب في هذا ان اسلوب تتبع الأشعة Ray Tracing، يستخدم أشعة ضوء حقيقة، تسير في المشهد وتصطدم بالأجسام والأسطح فتضيئها وتسقط منها الظلال، وهي محاكاة حقيقة لطريقة عمل الضوء والظل في الواقع، لهذا فهي تتلافي أية عيوب أو نواقص في الطرق القديمة.
صورة تجمع بين ظلال المياه وبين الظلال الشفافة Translucent Shadows للماء والكوب، مثل هذه الظلال ممكنة فقط من خلال تتبع الأشعة ..
صورة أخري للظلال الناتجة من تتبع الأشعة RTX لاحظ كيف تسقط المشاعل الصغيرة في أيدي الأطفال ظلالا واقعية ناعمة حولها، هذا التأثير صعب التحقيق للغاية من دون تتبع الأشعة ..
وعيوب الطرق القديمة كثيرة، فلأنها تعتمد علي عين افتراضية عند مصدر الضوء، فقد توجب أن يكون لهذه العين دقة عرض Resolution تري بها المشهد، وكلما زادت دقة العرض هذه كلما استطاعت العين رؤية أجسام بوضوح أكثر، مما يترجم بالتالي الي ظلال أكثر دقة، لكن هذا يأتي علي حساب الأداء، وخصوصا عندما يكون في المشهد أكثر من مصدر للضوء. مما يضطر المطورون الي تخفيض دقة الوضوح لتلك العين الافتراضية، مما ينتج منه مشكلات مثل تعرج الظلال Shadow Aliasing، ومثل انفصال الظل عن الجسم الخاص به Shadow Bias بسبب اختفاء جزء منه، ومثل الظلال الحادة المدببة. وتتفادي تقنية تتبع الأشعة كل هذا.
الي اليمين الظلال بوضوح منخفض، وتظهر متعرجة، وبها حواف مدببة وبارزة كذلك! الي اليسار الظلال بوضوح عال وتظهر سلسة ..
اختفاء جزء من ظل الاناء عند الممسك او المقبض، مما يجعل الظل منفصلا عن جسمه ..
إن تقنية تتبع الأشعة تعد بتقديم الكثير علي جبهة الظلال مما افتقده عالم الرسوميات بالفعل، وهي تمثل أقصي ما يمكن ان تصل اليه الرسوم علي جبهة الظلال، وبها يصل رسم الظلال الي مرحلة الكمال والواقعية المنتظرة. ونحن نتطلع الي تلك المرحلة في شوق حقيقي. لنخطو نحو رسوم وظلال تغمسنا في عوالم الألعاب أكثر وأكثر.
?xml>