المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : التَقنيات الرُسوميّة (الجُزء 2) : المُضلّعات Polygons



أحمد فرحات
02-22-2011, 07:16 PM
http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-18.jpg
(جُزء 2) : المُضلّعات Polygons: في هذه السلسلة سوف نتناول كل التقنيات الرسومية التي تستخدمها الألعاب ، سوف نشرح طريقة عملها والهدف من استخدامها ، بالاضافة الي تأثير تفعيلها علي أداء اللعبة ، الحلقات السابقة :التَقنيات الرُسومية (جزء 1): دقّة العرض Resolution ،ثانياً: المضلّعات Polygons ناقشنا في الحلقة الماضية مسألة دقة العرض والألوان ، وعرفنا أن فائدة بطاقة الرسوميات هي حساب ألوان الصورة وعرضها علي الشاشة في شكل نقاط Pixels K،اليوم نتحدث عن وظيفة أخري لبطاقة الرسوميات ، وهي وظيفة تحريك الألوان علي الشاشة ، أو بمعني أدق نقلها من مكانها الي مكان جديد ، لتعطينا الايحاء بأن الصور تتحرك علي الشاشة .



http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-01.jpg
يجب علي البطاقة نقل هذا المستطيل الي أسفل قليلا ،المستطيل في الصورة أعلاه يتكون من 2000 نقطة Pixel خضراء ، اذن يجب علي البطاقة نقل 2000 نقطة الي أسفل .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-02.jpg
يجب علي البطاقة الرسومية أداء 2000 عملية حسابية لنقل المستطيل الأخضر الذي يتكون من 2000 نقطة الي أسفل ،من الواضح جدا أن هذا عدد كبير للغاية من العمليات الحسابية لنقل مستطيل تافه ، فما بالك بمئات المستطيلات ؟وبالوضع في عين الاعتبار حالة البطاقات الرسومية في بداية نشأتها ، حيث كانت ضعيفة للغاية مقارنة بالوقت الحالي ، نجد أننا في مشكلة عويصة حقا .
لكن لكل مشكلة حل بالطبع ، والحل الذي فكر فيه المطورون هو الاكتفاء بأداء الحسابات علي النقاط المكوّنة لاطار المستطيل (حوافه) ، ثم ملأ ما بين الحواف باللون الأخضر.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-03.jpg
ستتعامل البطاقة الرسومية فقط مع حواف المستطيل .. والحواف فقط هنا تكوّن 600 نقطة ، وهو عدد اقل بثلاثة اضعاف من السابق !

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-04.jpg
بعد التحريك الي أسفل ، تبدأ عملية الملأ ،و ستقوم فيها البطاقة بملأ المساحة ما بين حواف المستطيل باللون الأخضر ،وفّرت البطاقة الرسومية هنا 1400 عملية حسابية، فهي تتعامل الآن مع 600 نقطة بدلا من 2000 ،لكن 600 نقطة لا يزال عدد كبير ، وطالما توصّلنا الي تطبيق مبدأ الملأ ، فانه يمكننا الآن التمادي في اختصار النقاط أكثر ، فبدلا من التعامل مع كل نقاط حواف المستطيل ، سنتعامل فقط مع النقاط الأساسية فيه ، وهي أركانه الأربعة .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-05.jpg
ستتعامل البطاقة الآن مع أربعة نقاط فقط ، وهي النقاط المكونة لأركان المستطيل ، ثم تملأ ما بينها بالنقاط الخضراء.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-06.jpg
عملية الملأ بين أركان المستطيل ،هنا تم توفير 1996 عملية حسابية ، والاكتفاء بأربع عمليات فقط علي أربعة نقاط ، ثم ملأ ما بين النقاط الأربع ،وقد يسأل سائل .. ألا تعتبر عملية الملأ جهدا حسابيا أيضا ؟
هذا صحيح .. لكنها جهد أقل بكثير من جهد النقل والتحريك .. فلو اعتبرنا مثلا أن جهد تحريك 2000 نقطة يساوي 2000 كجم حسابي، فان جهد تحريك 4 نقاط ، ثم ملأ ما بينهم يساوي 1000 كجم حسابي فقط ! ، وهو تخفيض للحمل الحسابي الي النصف ،اذن ما فعلناه هنا هو تقليل كمية الحسابات الي تقوم بها البطاقة الرسومية ، وبذلك نحصل علي أداء أعلي ، وكل هذا عن طريق تعديلات بسيطة في اسلوب المعالجة ، فبدلا من أن تتحكم البطاقة في كل نقاط الشكل ، ستتحكم فقط في النقاط المحوريّة فيه ،يطلق علي النقاط التي تتعامل معها البطاقة اسم نقاط التحكّم أو رؤوس التحكّم Vertices ، وذلك لأن البطاقة تستطيع التحكم في المستطيل من خلالها ، بنقله من مكانه الي مكان جديد ، أو حتي بتغيير شكله .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-07.jpg

أحمد فرحات
02-22-2011, 07:17 PM
يمكن للبطاقة تغيير شكل المستطيل ، بحذف احدي نقاط التحكم تماما ، ليتحوّل الي مثلث !

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-08.jpg

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-09.jpg
فيما بعد احتاج المطورون الي المزيد من التحكم في الأشكال الرسومية ، وفرض هذا عليهم اضافة المزيد من نقاط التحكّم ، وذلك علي الرغم من محاولتهم تقليل عددها ، لكن العائد يستحقّ .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-10.jpg
بدلا من أربعة ، ستتحكم البطاقة في تسعة نقاط (رؤوس) تحكم .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-11.jpg
عملية الملأ ما بين الرؤوس لتكوين الحواف أولا.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-12.jpg
عملية الملأ ما بين الحواف.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-13.jpg
زيادة نقاط التحكم أعطت قدرة أكبر علي التحكم في الشكل ، فبحذف نقطة واحدة من التسعة ، يتحول المستطيل الي شكل أكثر تعقيدا !

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-14.jpg
حذف نقطتين يغيّر من شكل المستطيل أكثر و أكثر.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-15.jpg
حذف ثلاثة نقاط يضيّع نصف المستطيل ، ويفيد هذا في المواقف التي يكون فيها نصف المستطيل محجوبا خلف شئ آخر.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-16.jpg
زيادة عدد نقاط التحكم الي 14 نقطة ، يزيد من احتمالات التحكم في المستطيل ، وتغيير شكله الي أشكال جديدة ،وهنا يجد المطورون أنفسهم في حيرة ، فزيادة عدد نقاط التحكم ، يزيد من العمليات الحسابية التي يتوجّب علي البطاقة عملها وبالتالي يحتاج الي بطاقة أقوي ، لكنه في نفس الوقت يعطي مرونة أكبر في التحكم في الأشكال الرسومية ، وهذا مهم للغاية في الألعاب ،بغض النظر عن ذلك ، فان نظام نقاط(رؤوس) التحكم اصبح نظاما قياسيا شاملا ، فكل الرسوميات المولّدة عن طريق الحاسوب تستعمل هذا النظام ، سواء كانت ألعابا ، أو عروض احترافية سينمائية ،فحتّي عندما يرغب المطورون في رسم الأشكال ثلاثية الأبعاد فانهم يبدأون برسم نقاط التحكم أولا ، وعلي برامج التصميم ثلاثي الأبعاد التوصيل بين نقاط التحكم هذه .

أحمد فرحات
02-22-2011, 07:19 PM
http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-17.jpg
منظر يدّ ثلاثية الأبعاد تحت التصميم (لونها رمادي) ، ويظهر في الخلفية صورتين ليد حقيقية من زاويتين مختلفتين ، يسترشد بهما المُصمّم أثناء رسم اليد بنقاط التحكم .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-18.jpg
أصبحت كل رسوميات الحاسوب مكونة من نقاط تحكم أو مضلعات Polygons ، والمضلّع هو عبارة عن مجموعة من رؤوس التحكّم متّصلين ببعض ، وفي الصورة أعلاه ، فان كل مضلع هو عبارة عن أربعة رؤوس تحكم،أثناء عملية الرسم ، فان عدد نقاط التحكم يؤثر علي جودة الشكل النهائية ، وخصوصا في الأشكال ذات الخطوط المنُحنية .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-19.jpg
شكل قوس دائري من خمسة نقاط تحكم ، وبالطبع يقوم الحاسوب بالتوصيل ما بين النقاط.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-20.jpg
نفس القوس ، لكنه مصنوع من سبعة نقاط(رؤوس) تحكم هذه المرّة ، لاحظ كيف أنه أكثر استدارة من سلفه ذو الخمسة رؤوس ،اذن كلما زاد عدد رؤوس التحكم في الشكل المنحني كلما أصبح أكثر استدارة وتفصيلا ، لكن بالطبع فان زيادة عدد النقاط يؤدي الي زيادة كمية الحسابات التي يجب أن تحسبها البطاقة الرسومية ،تتيح الألعاب استخدام عدد متفاوت من نقاط(رؤوس) التحكم ، بحيث تُلائم أكبر عدد من البطاقات الرسومية ، الضعيف منها والقوي ،عادة ما تحوي الألعاب خيارات مثل Model Details ، أو Model Quality ، أو Object Quality ..الخ ، وكلّها خيارات لضبط عدد رؤوس التحكم للأشكال ثلاثية الأبعاد .. امّا بأقل عدد ممكن Low ، أو بعدد وسطيّ Medium ، أو بأقصي عدد متوافر High .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-21.gif
صورة لعجلة طائرة ، الي اليمين العجلة بأكبر عدد ممكن للرؤوس ، لذا تظهر كاملة الاستدارة ، والي اليسار العجلة بأقل عدد ممكن من الرؤوس ، لذا تظهر مدببة الزوايا

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-22.jpg
صورة لوجه بشري ، القسم الأعلي يوضّح الوجه بعدد مضلّعات/رؤوس كبير ويظهر الوجه مستديرا ومتناسقا، والقسم الأسفل يوضح الوجه بعدد رؤوس قليل ، ويظهر الوجه مدببا وأقل تناسقا .

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-23.jpg
صورة لشخصية من لعبة Team Fortress 2 ، الي اليمين الشخصية بعدد رؤوس كبير ، والي اليسار الشخصية بعدد رؤوس أقل، لاحظ الفارق،لن نحتاج لتكرار أنه بزيادة عدد الرؤوس فان العبأ الحسابي يكون أكبر علي البطاقة الرسومية ، وبالذات علي المعالج الرسومي GPU ، وكذلك الذاكرة الرسومية ، ذلك لأن كل رؤوس(نقاط) التحكم تخزّن في الذاكرة أولا .

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

الترصيع Tessellation :الترصيع هو أحد الخصائص الجديدة في DirectX11 ، وهو يؤدي وظيفة زيادة عدد رؤوس (نقاط) التحكم لأي شكل ثلاثي الأبعاد بطريقة تلقائية ، بحيث يحصل الشكل علي تفاصيل اكثر.

http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-24.jpg
صورة لوجه بسيط.


http://www.arabhardware.net/images/stories/Articles/November/GPU2/19112010-25.jpg
بعد تطبيق الترصيع ازداد عدد مضلعات الوجه (رؤوس التحكم) ، وحصل الوجه علي تفاصيل أكثر ،بالطبع يضغط الترصيع بشكل أكبر علي البطاقة الرسومية ، بسبب عدد الرؤوس الكبير ، لكنه يوفّر في استهلاك الذاكرة ، لأن عملية زيادة عدد الروؤس تتم بعد قراءة الشكل الأصلي من الذاكرة .