التَقنيات الرُسوميّة

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

الحلقات السابقة :
التَقنيات الرُسومية (جزء 1): دقّة العرض Resolution

ثانيا: المضلّعات Polygons

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

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


يجب علي البطاقة نقل هذا المستطيل الي أسفل قليلا ..

المستطيل في الصورة أعلاه يتكون من 2000 نقطة Pixel خضراء ، اذن يجب علي البطاقة نقل 2000 نقطة الي أسفل .


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

من الواضح جدا أن هذا عدد كبير للغاية من العمليات الحسابية لنقل مستطيل تافه ، فما بالك بمئات المستطيلات ؟!

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

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


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


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

وفّرت البطاقة الرسومية هنا 1400 عملية حسابية ، فهي تتعامل الآن مع 600 نقطة بدلا من 2000 .

لكن 600 نقطة لا يزال عدد كبير ، وطالما توصّلنا الي تطبيق مبدأ الملأ ، فانه يمكننا الآن التمادي في اختصار النقاط أكثر ، فبدلا من التعامل مع كل نقاط حواف المستطيل ، سنتعامل فقط مع النقاط الأساسية فيه ، وهي أركانه الأربعة .


ستتعامل البطاقة الآن مع أربعة نقاط فقط ، وهي النقاط المكونة لأركان المستطيل ، ثم تملأ ما بينها بالنقاط الخضراء.



عملية الملأ بين أركان المستطيل .

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

وقد يسأل سائل .. ألا تعتبر عملية الملأ جهدا حسابيا أيضا ؟

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

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

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


يمكن للبطاقة تغيير شكل المستطيل ، بحذف احدي نقاط التحكم تماما ، ليتحوّل الي مثلث !



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



بدلا من أربعة ، ستتحكم البطاقة في تسعة نقاط (رؤوس) تحكم .



عملية الملأ ما بين الرؤوس لتكوين الحواف أولا ..



عملية الملأ ما بين الحواف ..


زيادة نقاط التحكم أعطت قدرة أكبر علي التحكم في الشكل ، فبحذف نقطة واحدة من التسعة ، يتحول المستطيل الي شكل أكثر تعقيدا !


حذف نقطتين يغيّر من شكل المستطيل أكثر و أكثر ..


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


زيادة عدد نقاط التحكم الي 14 نقطة ، يزيد من احتمالات التحكم في المستطيل ، وتغيير شكله الي أشكال جديدة ..

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

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

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


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



أصبحت كل رسوميات الحاسوب مكونة من نقاط تحكم .. أو مضلعات Polygons ، والمضلّع هو عبارة عن مجموعة من رؤوس التحكّم متّصلين ببعض ، وفي الصورة أعلاه ، فان كل مضلع هو عبارة عن أربعة رؤوس تحكم ..

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


شكل قوس دائري من خمسة نقاط تحكم ، وبالطبع يقوم الحاسوب بالتوصيل ما بين النقاط ..



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


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

تتيح الألعاب استخدام عدد متفاوت من نقاط(رؤوس) التحكم ، بحيث تُلائم أكبر عدد من البطاقات الرسومية ، الضعيف منها والقوي ..

عادة ما تحوي الألعاب خيارات مثل Model Details ، أو Model Quality ، أو Object Quality ..الخ ، وكلّها خيارات لضبط عدد رؤوس التحكم للأشكال ثلاثية الأبعاد .. امّا بأقل عدد ممكن Low ، أو بعدد وسطيّ Medium ، أو بأقصي عدد متوافر High .


صورة لعجلة طائرة ، الي اليمين العجلة بأكبر عدد ممكن للرؤوس ، لذا تظهر كاملة الاستدارة ، والي اليسار العجلة بأقل عدد ممكن من الرؤوس ، لذا تظهر مدببة الزوايا .



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



صورة لشخصية من لعبة Team Fortress 2 ، الي اليمين الشخصية بعدد رؤوس كبير ، والي اليسار الشخصية بعدد رؤوس أقل .. لاحظ الفارق ..

لن نحتاج لتكرار أنه بزيادة عدد الرؤوس فان العبأ الحسابي يكون أكبر علي البطاقة الرسومية ، وبالذات علي المعالج الرسومي GPU ، وكذلك الذاكرة الرسومية ، ذلك لأن كل رؤوس(نقاط) التحكم تخزّن في الذاكرة أولا .

اذا كانت بطاقتك الرسومية ضعيفة ، أو ذات ذاكرة بسعة تبادل بيانات متواضعة ، فانه من المفضّل أن تقوم بضبط اعدادت تفاصيل الرؤوس الي Low ، أو Medium .

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