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

أولا : دقّة العرض Display Resolution

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

Display Resolution

              صورة حقيقة لكل نقطة Pixel من نقاط الشاشة ، وكل نقطة هي عبارة عن منطقة خضراء و حمراء وزرقاء .

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

نقطة ذات لون أحمر باهت ، يميل الي الزُرقة (بنفسجي) ..

الآن تعالوا نُكبّر هذه النقطة 400 مرّة !

نعم ! هذه النقطة التافهة هي عبارة عن 50 نقطة حمراء و 50 نقطة زرقاء (100 نقطة) في ترتيب متبادل ..

ما حدث هنا أن الـ100 نقطة تزاحمن في مساحة ضيقة جدا، الي درجة أن طيفهنّ اللوني اندمج اندماجا شديدا، الي حد أن العين البشرية استقبلتهن بلون مختلف و جديد، هو حاصل اندماج طيف اللونين الأزرق والأحمر، وهو اللون الأحمر الباهت المائل الي الزُرقة !

وبهذه الطريقة تماما تتلاعب الشاشة بالعين، وتوهمها أنها تستقبل درجات مختلفة من الألوان ..

ألق نظرة عابرة علي الصورة .. فبها درجات مختلفة من الألوان .. أحمر فاتح، أصفر، وردجات مختلفة من اللون الأخضر الفاتح .

الآن قارن الصورة السابقة بهذه الصورة :

هل فهمت الخدعة ؟ الأحمر الفاتح ما هو الا نقاط زرقاء وحمراء، واللون الأصفر نقاط حمراء وخضراء، واللون الأخضر الفاتح نقاط زرقاء وخضراء .

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

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

تحتوي كل شاشة علي عدد محدد من هذه النقاط Pixels، فالشاشة ذات حجم 17 بوصة، تحوي حوالي مليون وثُلث المليون نقطة، والشاشة ذات حجم 23 بوصة تحوي حوالي مليونين من النقاط. ومصطلح دقّة العرض Resolution يطلق علي عدد هذه النقاط في أي شاشة، فشاشة بحجم 23 بوصة، تستطيع عرض 2 مليون نقطة في لحظة واحدة .

بدلا من استخدام عدد النقاط، يستخدم المهندسون أسلوب عدد النقاط العرضية في الشاشة X عدد النقاط الطولية، كأن يقولوا مثلا أن دقة العرض علي الشاشة هي 1080x1920، بدلا من 2 مليون نقطة.

صورة مبسّطة (للتمثيل)  لشاشة بدقة 100 نقطة أي 10X10، والصورة تمثّل رجلا يحمل حقيبة وتملأ الشاشة كلها!!

استخدام دقة عرض كبيرة في تشغيل الألعاب يعني استخدام عدد أكبر من الألوان، هذا العدد الكبير يضغط علي ذاكرة بطاقة الرسوميات Graphics Card، فكل لون واحد يحتل مساحة 4 بايت من الذاكرة. العدد الكبير يضغط أيضا علي معالج بطاقة الرسوميات GPU، لأن مهمته هي حساب الألوان التي تعرض علي الشاشة، وكلما ازداد عدد الألوان المطلوب حسابها، زاد العبأ علي المعالج الرسومي.

اذا كان المستخدم يملك بطاقة رسومية ضعيفة، (بمعالج رسومي ضعيف وذاكرة صغيرة) فان تقليل الدقة يخفف الحمل علي البطاقة. لكن عند تقليل الدقة تظهر مشكلة جديدة، وهي أن الدقة الأقل تعني عدد نقاط Pixels أقل، وبالتالي فهي تشغل مساحة أقل من الشاشة. اذا كانت الشاشة بحجم 23 بوصة (بدّقة 1920x1080 أو 2 مليون نقطة) ، فان تشغيلها علي دقة 960x540 مثلا يعني أن عدد النقاط المستخدم هو 1 مليون نقطة فقط من أصل 2 مليون، وهذا يعني أن نصف الشاشة تقريبا يصبح شاغرا بدون استخدام.

يستخدم مصنّعي الشاشات حلّا مباشرا لهذه المشكلة، فالدقة الأقل تحتوي علي 1 مليون نقطة، والدقة الأعلي تحتوي علي 2 مليون نقطة، اي الضعف، وهنا يتم توسيع Stretch الدقة الأقل مرّتين لتتساوي مع الدقة الأعلي.

مثال : صورة بدائية جديدة بدقة 10X5 (أي 50 نقطة من أصل 100) معروضة علي شاشة 10x10، والسطور السوداء أعلي و أسفل الصورة هي سطور خالية، والصورة تحتوي علي 20 نقطة حمراء و 30 نقطة صفراء. 

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

تمّ استغلال النقاط الخالية في مضاعفة كل لون أحمر واصفر في الشاشة، والشاشة الآن تحتوي علي 40 نقطة حمراء و 60 نقطة صفراء.

عملية التوسيع Stretch تتم بوضع لون كل نقطة من الدقة الأقل علي نقطتين من الدقة الأعلي، فمثلا باستخدام الدقة الأقل قمنا بتلوين نقطة واحدة باللون الأحمر، اذن بعد توسيع الدقّة مرتين، يحتلّ هذا اللون الأحمر نقطتين بدلا من نقطة واحدة .

ثم يتم تطبيق هذه الطريقة علي بقية الألوان والنقاط .

صورة بدائية أخري، بدقة 5X10، أي بدقة 50 نقطة Pixel فقط من اصل 100 نقطة، والصورة تحتل منتصف الشاشة (السطور الحمراء والبُقع الخضراء) ، بينما تظل باقي أجزاء الشاشة خالية من الأعلي والأسفل (السطور السوداء).

عملية تقسيم وتوزيع الصورة ، كل صف من الصورة، يتبعه صف خال (والنقاط البيضاء هي نقاط خالية تنتظر الملأ/التلوين) .

قامت الشاشة بملأ كل نقطة بيضاء باللون المجاور لها، فاذا كان اللون أحمرا امتلأت بالأحمر، واذا كان أخضرا امتلأت بالأخضر ..الخ .

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

تُصاب الشاشة بالحيرة، هل تُضاعف النقطة الخضراء في الصف الخالي الأعلي، أم الأسفل ؟!!

مقارنة بين صورتين، الي اليمين اختارت الشاشة مُضاعفة النقطة في الصف العلوي، والي اليسار اختارت مُضاعفة النقطة في الصف السفلي، لاحظ الفارق بين الصورتين، وبالذات في مواقع النقاط الخضراء بالنسبة لبعضها البعض وبالنسبة للنقاط الزرقاء.

والأسوأ من ذلك أن هذه الطريقة المباشرة لا تصلح في معظم الأحوال، فالمستخدمين عادة ما يستخدمون دقات لا تصلح لعملية التوسيع ، مثل دقة 1050x1680 مثلا، والتي تحوي 1.6 مليون نقطة، أي أن ربُع الشاشة تقريبا يصبح خاليا. هنا يجب عمل توسيع لكل نقطة في الدقة الأقل الي واحد وربع 1.25 نقطة في الدقة الكاملة، وهذا مستحيل بالطبع لأن النقاط لا تقبل الكسر الي نصف أو ثلُث أو رُبع.

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

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

صورة بدائية أخري ، دقتها 6X10 ، أي 60 نقطة من أصل 100 ، ونُلاحظ هنا أن ثُلث الشاشة تقريبا خال .

عملية التقسيم، يُلاحظ أن العملية لم تتم بالتساوي هذه المرة، فلا توجد صفوف خالية بين آخر صفّين من الصورة (الصفّين الأصفرين )، وهذا بسبب أن دقّة الصورة الأصلية غير قابلة للتقسيم بالتساوي .

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

صورة أخري ، بدقّة 60 نقطة .. 

عملية تقسيم الصورة لم تتم بالتساوي ، فلا توجد صفوف شاغرة بين آخر صفّين ..

نُلاحظ ظهور لون جديد ، وهو اللون البرتقالي، وتحديدا فيما بين اللون الأصفر والأحمر، وملامح الصورة العامة ظلت كما هي، لكن اللون الجديد اضفي عليها تشوّها.

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

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

  صورة صغيرة 

الصورة تم توسيعها عدة مرات لاحظ ان عناصر الصورة اقل وضوحا (باهتة) 

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

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

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

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

دقة العرض

اللعب بدون توسيع للصورة، الصورة تظهر في المنتصف وباقي الشاشة مظلم وأسود، يمكن للاعب تفعيل هذا الخيار من تعريف القيادة driver

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

بعض الألعاب تعمل بدقات مكبرة (موسعة) upscaled resolution، وخصوصا علي أجهزة المنصات المنزلية home consoles. ويقوم المطور بتطويع طريقة التكبير بحيث يتفادي بعض عيوبه، بأن يقوم بتقسيم الشاشة الي رقع صغيرة، ويقوم بالتكبير فيها..  يطلق علي هذه الطريقة اسم checkerboard scaling، أو التكبير بالرقع، وهي تظهر بشكل أفضل من التوسيع العادي. لكنها تظل باهتة عن الدقة الأصلية أيضا حتي وان كانت قريبة منها في الوضوح.

مقارنة بين التوسيع العادي upscaling والتوسيع الرقعي checkerboard، الي اليسار الصورة الأصلية standard، تلاحظ ان التوسيع الرقعي هو الاقرب للاصل 

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

بعض الالوان الشبحية ghosting الناتجة من التوسيع الزمني، وهي تظهر بشكل نادر

في النهاية فان أفضل صورة ممكنة بأفضل وضوح ممكن هي للدقة الكاملة أو الأصلية native resolution مهما تعددت تقنيات التوسيع او التكبير .. لكن الدقة الأصلية عادة ما تحتاج بطاقات رسومية قوية، خصوصا علي الشاشات الكبيرة والتي تدعم دقات مثل 4K!