في هذه السلسلة سوف نتناول كل التقنيات الرسومية التي تستخدمها الألعاب ، سوف نشرح طريقة عملها والهدف من استخدامها ، بالاضافة الي تأثير تفعيلها علي أداء اللعبة .
الحلقات السابقة :
التَقنيات الرُسومية (جزء 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 .
في النهاية .. رأينا كيف تطوّر مفهوم الرؤوس من محاولة لتقليل العبا الحسابي أثناء تحريك الألوان ، الي اختصار في عدد النقاط التي تتعامل معها البطاقة الرسومية في كل شكل ، ثم الي وسيلة للتحكم في الشكل ثلاثي الأبعاد وتعديل شكله ، وفي النهاية الي طريقة رسم وبناء الأشكال ثلاثية الأبعاد من الصفر ..
المفضلات