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

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



أحمد فرحات
02-22-2011, 07:28 PM
http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-020.jpgالاكساءات Textures:حديثنا اليوم عن أحد أهم العوامل التي تؤثر في جمال رسوميات أي لعبة ، بل قد يجادل البعض ويقول أنها أهم العوامل علي الاطلاق ، ودون أدني استثناء،والواقع أن هؤلاء مُحقّون ، فالألعاب التي تحتوي علي كساءات قوية تكون مميزة للغاية بمجرد القاء نظرة سريعة عليها ،بل ويصاحبها عادة شعور اللاعب أنه لو مدّ يده الي الشاشة فسيستطيع "لمس" الأشكال ثلاثية الأبعاد التي تعرض أمامه،لكن أجمل المؤثرات الرسومية لم يُصنع لهدف اضفاء الواقعية والبهاء علي رسوميات الألعاب ، وانما صنع في البداية لغرض آخر ، غرض ربما يُعدّه البعض عكس السابق تماما ،وهذا الغرض هو توفير عدد المضلّعات ،قلنا في الجزء الثاني أن عدد المضلعات أو رؤوس التحكم Vertices ، ظلّ شوكة في حُلق كل البطاقات الرسومية ، فاستخدام عدد كبير يضع عبأ حسابيا ثقيلا علي البطاقات ، ويجعل الأداء بطيئا ، لكنه يحسّن من جودة الصورة بالطبع،اليوم سنري كيف يقوم شئ ما اسمه الكساءات Textures بتوفير عدد المضلعات أكثر وأكثر ، مع الحصول في نفس الوقت علي جودة صورة مُقاربة .
بداية .. لننظر الي هذا الشكل :



http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-01.jpg
باب برئ المظهر ، وفي منتصفه يوجد مقبض مربع الشكل ،هذا الباب هو شكل ثلاثي الأبعاد ، سنحاول الآن عدّ رؤوس التحكم فيه ، سنفعل هذا لتقييم الموقف ولمعرفة كمية العبأ الحسابي الواقع علي البطاقة الرسومية عندما تتحكم في هذا الباب ، وسنقوم بعدّ الرؤوس التي تمثل زوايا الباب والمقبض .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-02.jpg
الباب يتكون من 12 رأس تحكم خاصة بالهيكل الأساسي فيه ، وثمانية خاصة بالمقبض الباب هو شكل ثلاثي الأبعاد ، أي أنه مجسّم من كل الزوايا والجوانب ، واذا نظرنا اليه من منظور جانبي ، سيظهر هكذا بالطبع :

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-03.jpghttp://www.arabhardware.net/images/stories/Articles/November/textures/26112010-04.jpg


الباب من منظر جانبي ، ويظهر في الصورة المقبض أيضا من نفس المنظور Kعندما نعدّ عدد رؤوس التحكم من نفس المنظور سنجد أنهم لا يزالوا 12 رأسا عندما ننظر للباب من زاوية مائلة ، نجد أن عدد رؤوس التحكم قد ازداد ، لأن الباب يظهر من منظور أمامي وجانبي في وقت واحد :

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-05.jpg http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-06.jpg
الباب من زاوية مائلة ويظهر فيه الجوانب الأمامية والجانبية معا ، كذا الأمر بالنسبة للمقبض ، و عدد رؤوس التحكم ارتفع الي 21 رأس عدد رؤوس الشكل كلّه هي (الباب + المقبض ) هي 24 رأس في الأصل ، لكن بالصورة أعلاه لا يظهر الا 21 ،ما قمنا بشرحه هنا هو طريقة الرسم العادية لتكوين أشكال ثلاثية الأبعاد بتفاصيلها ،لكن طريقة الكساءات تختلف تماما ، وستوفر في عدد رؤوس التحكّم مع الحصول علي نفس النتيجة تقريبا .

بداية سنقوم باستخدام الباب بدون المقبض نهائيا .. وفي هذا سنستخدم 8 رؤوس فقط !

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-07.jpghttp://www.arabhardware.net/images/stories/Articles/November/textures/26112010-08.jpg

أحمد فرحات
02-22-2011, 07:28 PM
منظر الباب من الأمام ، بأربعة رؤوس فقط ! ، وهذا طبيعي ، لأن المقبض اختفي !

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-009.jpghttp://www.arabhardware.net/images/stories/Articles/November/textures/26112010-09.jpg
منظر الباب من الجانب ، بأربعة رؤوس فقط أيضا ..


http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-10.jpg http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-010.jpg
منظر الأمام من زاوية مائلة ، بسبعة رؤوس فقط ،أعتقد أنه صار واضحا أنني حذفت أية تفاصيل زائدة في الباب ، وتحديدا المقبض ، تاركا الهيكل الأساسي للشكل ،الآن سأقوم بفتح أي برنامج لتحرير الصور ، وسأقوم بعمل صورة كبيرة ثنائية الأبعاد فيها مستطيل رمادي كبير ، وبه مربع لونه رمادي غامق و مستطيل أسود في نهاية الصورة علي اليسار .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-11.jpg
سأحفظ الصورة باسم Door.tx .. لاحظ الامتداد tx ، أي اختصار Texture أو اكساءات بالعربية ،الآن سأقوم بادخال هذه الصورة داخل محرك اللعبة الرسومي ، وأطلب من البطاقة الرسومية تطبيق هذه الصورة علي الباب ،ستقوم البطاقة الرسومية بقراءة ألوان هذه الصورة ، ثم تقوم بملأ مساحة الباب بهذه الألوان ، وهي ستقوم بلفّ الصورة بألوانها علي الباب حرفيا .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-12.jpg

أحمد فرحات
02-22-2011, 07:30 PM
الجزء المحدد بالأحمر من الصورة ، سيكون من نصيب وجه الباب الخلفي ، بينما الجزء المحدد بالأزرق سيكون من نصيب جانب الباب .. باقي الصورة سيكون من نصيب وجه الباب الأمامي .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-13.jpg
منظر الوجه الأمامي للباب ، ويظهر فيه المقبض وقاعدته ، والصورة مماثلة تماما لصورة الباب الأولي ذات الـ21 رأس.

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-14.jpg
منظر جانب الباب ، ولونه رمادي ، لكن لا يظهر فيه أي وجود للمقبض ، وهذا أمر طبيعي لأن المقبض غير موجود أصلا ، فهو مجرد صورة وليس جسما حقيقيا من الرؤوس وصورة المقبض لا يمكنها الظهور من هذه الزاوية الجانبية.

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

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-17.png
المعالج الرسومي يكسو هذا المكعب بصورة الكساء،وللمزيد من التوضيح ، نقول أن لكل شكل ثلاثي الأبعاد وصف حوسبي خاص به ، هذا الوصف يشمل البروزات والنتوءات و المُنخفضات التي يحتوها هذا الشكل ، .. حيث يتم وصف الشكل من كل منظور ممكن ، والوصف في النهاية هو مجرد بيانات للألوان التي تكوّن هذا الشكل بكل بروزاته ومنخفضاته ، ففي مثال الباب بالأعلي ، نقول أنه يتكوّن من 3000 نقطة لونية (2500 نقطة للباب ، و 500 نقطة للمقبض ) ، تكوّن شكل الباب من كل منظور ممكن .

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

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-18.gif

أحمد فرحات
02-22-2011, 07:30 PM
هذه صور لتشكيلة متنوعة من المواد الحجرية (رخام ، جرانيت ، قوالب حجرية ، حصي ..) وكل هذه الصور هي كساءات يمكن بها تغليف أي شكل ثلاثي الأبعاد ، حتي شكل الباب ،بالطبع بوجد اختلاف واضح في جودة الصورة بين استخدام الكساءات واستخدام المضلعات الحقيقية (الأوصاف الحقيقية ) في اضافة التفاصيل ، وتحديدا فيما يتعلق بعمُق هذه التفاصيل و تجسيمها ، أو ظهورها من زوايا حادة .. وهذا ما رأيناه في مثال الباب بالأعلي ، فباستخدام المضلّعات كان مقبض الباب واضحا في كل الزوايا ومن كل منظور ممكن ، لكن باستخدام الكساءات ، اختفي المقبض عند النظر من الجانب ، واختفي عٌمقه من منظور الزاوية المائلة .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-19.jpghttp://www.arabhardware.net/images/stories/Articles/November/textures/26112010-019.jpg
مثال آخر : الي اليمين منظر جدار عليه صورة كساء لقوالب طوب ، انظر الي حافة الجدار تجد أنها مستقيمة تماما ، ولا توجد بها أي نتوءات ، وهذا غير صحيح بصريا ، فمن المفترض وجود نتوءات وبروزات من قوالب الطوب ، وهو ما يظهر في الصورة علي اليسار ، والتي تم استخدام المضلعات فيها.

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-020.jpg
مثال جديد : الي اليمين منظر سقف المنزل من زاوية مائلة باستخدام المضلّعات ، ويظهر في الصورة النتوءات والبروزات الصحيحة ، لكن علي اليسار تم استخدام الكساءات ، ويظهر سقف المنزل مُسطّحا وخاليا من أية تفاصيل وكأنه لوح من قطعة واحدة .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-21.jpghttp://www.arabhardware.net/images/stories/Articles/November/textures/26112010-20.jpg
الي اليمين صورة كساء لجدار مع بعض الزخارف و رأس لأسد ، الي اليسار نفس الصورة لكن بالمضلعات ، لاحظ كيف ازداد عمق الزخارف وراس الأسد ،لكن المطورين يعتمدون علي أن اللاعب لن يلاحظ مثل هذه التفاصيل أثناء اللعب ، وخصوصا أثناء الحركة السريعة ، كما يعتمدون علي أن اللاعب يقضي معظم وقته في مواجهة الأجسام مباشرة (أي من المنظور الأمامي )ويقضي وقتا أقل بكثير في أي منظور جانبي آخر.
ولأن الكساءات هي مجرّد صور عادية جدا ، فان جودتها تتأثر بدقّة العرض ، فالصور أيضا لها أبعاد ولها دقة ، ولو أخذنا صورة كساء الباب بأعلي المقال مثلا ، سنجد أن دقتها هي 390x209، وعند عرض اللعبة علي دقة مثل 1920x1080، أي علي مساحة عرض واسعة ، سنجد أن صورة الاكساء قد تتضخم الي دقة مثل 1150X650 مثلا وذلك عن طريق عملية التوسيع Stretch ، وهنا تحدث في صورة الاكساء كل العيوب الناتجة عن هذه العملية ، من تغير في التفاصيل أو بهتان وعدم وضوح بسبب الألوان الوسطية ، الي زيادة في تعرّجات الخطوط المائلة (راجع الجزء الأول والثالث ) .

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-22.gif
صورة لكساء حجري ، والصورة بدقّة 90x85 ،انظر ماذا يحدث عندما يتم تكبير الصورة بحيث تصبح بدقة 450x425 :

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-23.jpg
تعرّجات عنيفة في الصورة ، بالاضافة الي وجد تلّطخات من الألوان الوسطية والتي تعطي الصورة طابع من الرداءة ،وحتي عند تشغيل اللعبة علي دقة منخفضة مثل 1024x768، فان اقتراب اللاعب من الجسم ثلاثي الأبعاد اقترابا شديدا ، يجعل هذا الجسم يحتل مساحة الشاشة كلها ، أي يصبح بنفس دقة الشاشة ، وهنا تطبق عملية التوسيع علي الكساء بحيث يصبح بنفس دقة الشاشة ، فتحدث كل عيوب الصورة التي تحدثنا عنها .
الحل ، هو استخدام كساءات ذات دقة عالية من البداية ، مثلا 1024x1024، أو 1600x1600 ، حتي لا نحتاج الي تطبيق عملية التوسيع علي الكساءات ، لأنها بحجم كبير جدا أصلا ، وحتي لو استخدم اللاعب دقة عالية مثل 1920x1080 ، يكون الفارق بين دقة الكساء 1600x1600 ودقة اللعب 1920x1080 قليلا ، فلا نحتاج لتطبيق عملية التوسيع بكثافة ، مما يقلل من عيوب الصورة الناتجة .

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

http://www.arabhardware.net/images/stories/Articles/November/textures/26112010-24.jpg
البطاقة الرسومية تقوم بتكبير وتصغير صورة الكساء حسب الحاجة ،والتصغير هي عملية عكس عملية الألوان الوسطية بالضبط ، ففي الأخيرة ، يتم اضافة نقطة بلون وسطي بين كل نقطتين ، أما في التصغير فمن بين كل نقطتين يتم حذف نقطة واحدة ، وبذلك يقل عدد نقاط الصورة Pixels أي تقل دقة عرضها ،لكن بشكل عام فان الكساءات تضغط علي ذاكرة البطاقة الرسومية بدرجة أكبر من المعالج الرسومي .