All But Reality

Imagine a catchphrase here

Simple template. Background and Customization by Shihab Elagib. Powered by Blogger

May 13, 2015

عن القيمز والجرافيكس - الجزء الأول

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

"عدة مقالات" لأنه حتى عند حصر الإعدادات التي سأتحدث عنها لأكثرها شيوعاً، فإنها لا تزال كثيرة العدد. لذا سأقسم الحديث عنها لعدة مقالات مبتدئاً -في هذا المقال- بثلاث إعدادات او مفاهيم: الدقة (resolution)، التعرج (Aliasing) ومكافحة التعرج، وأخيراً كلاً من الTextures والطرق المنتشرة لترشيحها (فلترتها). 
النص ادناه سيتحدث ببعض من الاختصار عن النظري وراء هذه الاعدادات ومن ثم بيان امثلة عملية لها من عدة عناوين قيمز معروفة.

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

الدقة - Resolution

الصورة الرقمية تتكون من عناصر صغيرة تسمى الـPixels يمكن اعتبارها على انها دائرة او مستطيل صغير بلون واحد. تراص هذه البكسلات ضمن مصفوفة ألوان مختلف هو ما يكون لنا الصورة الرقمية. فالخط الأسود الذي يقطع صورة بيضاء بالكامل ما هو سوى صف (او عدة صفوف) من البكسلات ذات اللون الأسود وسط مصفوفة كبيرة من البكسلات البيضاء.  خذ كمثال هذه الصورة من موقع HowToGeek التي توضح كيف تكون البكسلات الصورة.

الدقة او ال Resolution هي اصطلاح يبين كمية هذه البكسلات في الصورة. و عادة ما يعبر عنه بعدد البكسلات الأفقية في الصورة مضروباً في عدد الرأسية. 

هنالك ايضاً اصطلاح يستخدم العدد الكلي للبيكسلات لتحديد الدقة كما نجد في الكاميرات الرقمية مثلاً التي تستخدم الميقابيكسل (مليون بكسل) كمقياس. هذا الاصطلاح ندر استخدامه في الصور الرقمية عموماً مقارنة بالموضح اعلاه لأن هذا الاخير يوضح ايضاً عنصراً ثالثاً للصورة: نسب الابعاد او الـAspect Ratios.

الدقة هي المقياس الرئيسي لكمية التفاصيل التي يمكن رسمها في الصورة الواحدة. فإذا اردت مثلاً رسم عشرة خطوط طولية سوداء عرض كل منها بكسل واحد وبمسافة بكسل واحد بين الخطوط وبكسل بين اخر خط وطرف الصورة، هذا يعني انك ستحتاج الى ما لا يقل عن 10+11 بكسل عرضي في هذه الصورة. استخدام بكسلات اقل يعني انه سيجب على الرسام الاستغناء عن بعض الخطوط او دمج بعضها لتصبح خطاً واحداً ثخيناً، او اما نقصاناً في التفاصيل او تشوهاً فيها.

عرض الصورة الرقمية النهائية كثيراً ما يمر بعدة مراحل من الإستقراء الداخلي (interpolation)  لكي يمكن للهاردوير (والسوفتوير) عرض صورة بدقة معينة في وسيط (شاشة او بروجيكتر) بدقة قد تكون مختلفة. فعرض صورة بدقة 500x500 في شاشة 500x500 سينتج عنه تمثيل كل بكسل في السوفتوير ببكسل في الهاردوير. اما عند عرضها في في شاشة 1000x1000، فهنالك سبيلان فقط: اما عرضها في 25% من مساحة الشاشة وترك الباقية سوداء، أو مط الصورة للحجم الجديد (تكبيرها 4 مرات) وإجراء الإستقراء لمحاولة تحديد لون البكسلات الإضافية.
في مثال الخطوط العشرة اعلاه، اذا اردنا عرض هذه الصورة ذات 21 بكسلاً عرضياً على شاشة تستخدم 63 بكسلاً عرضياً، فسنحتاج الى اضافة 42 بكسلاً عرضياً اضافية لتلك الصورة، هذه البكسلات سيكون ناتجها -في هذا المثال فقط- المتوسط الحسابي لكل بكسلين متجاورين، اي انه سيتم خلق خط رمادي (متوسط الابيض والاسود) على جانبي كل خط اسود.
اي ان عملية الاستقراء ومحاولة تكييف الصورة هذه شبه-دائما ما ينتج عنها صورة باهتة وذات محتوى مشوه. 

خذ الشكل البسيط الاتي المصيير بـ4 دقات اصلية مختلفة وممطوط الى نفس الحجم.

دقة 15x15 بكسل لم تكن كافية البتة لعرض جميع التفاصيل، لذا اجبر برنامج التصيير الى دمج بعض العواميد الرأسية المتقاربة مانعاً بذلك عرض الفراغات الموجودة بينها. دقة 60x60 تمكنت من تفادي هذه المشكلة لكن ليس بالكامل، ان لاحظت للفراغات الناتجة من الصفوف الافقية ستجد ان بعضها اصغر حجماً من مثيلاتها في الدقة الاعلى نتيجة لقيام السوفتوير بإجراء استقراء بين البكسلات التي تحوى لوناً وتلك التي تمثل الفراغ، كما ستلاحظ ايضاً عدم وجود تدرج يذكر للألوان يستمر وجوده ايضاً -وان كان بصورة اقل- في دقة 120x120 ويختفي تقريباً بالكامل في 480x480.


كمثال عملي اكثر، خذ هذا المشهد:

الصورة اعلاه تم تصييرها بدقة 2560x1440 و تصغيرها لتصبح 1920x1080. هذه الصورة -على الرغم من بساطتها بالنسبة إلينا- ذات محتوى معقد بالنسبة للسوفتوير، فأغلب مساحة الصورة (منطقة الأعشاب) بها تغيرات لونية بين كل بكسلين متجاورين (وربما اقل، في بعض المناطق). لذا فإن محاولة تصيير هذا المشهد بدقة أقل وعرضها على نفس الحجم الذي عرضت فيه الصورة اعلاه ستنتج لنا المشكلة المذكورة اعلاه.

للتوضيح، قمت بتصيير هذا المشهد على 5 من المقاييس المعروفة للدقة: 1440p، 1080p, 720p، 1024x768 و 800x600. واخذ عينة من المشهد وتكبيرها لنفس حجم العرض النهائي لتنتج الأتي:


لاحظ انخفاض التفاصيل مع انخفاض الدقة، بداية بإنخفاض بسيط بين ال1440 وال1080، ووصولا لإختفاء شبه كامل لها عند 800x600، حيث لم تجد خوارزمية استقراء الـbicubic فلتر (الذي يستخدمه الفوتوشوب، الذي استخدمته لتكبير وتصغير هذه الصور) ما يكفي من البيانات في الصورة الأصل لإخراج ناتج واضح في الصورة المكبرة.

لأمثلة عملية اختبرت عدة العاب واخترت منها مشهدين ليوضحا تأثير اختلاف الدقة. هذه المشهدين تم تصيرهما (بواسطة محركي اللعبتين game engines) على 3 دقات: 720p، 1080p و أعلى ستاندرد دقة متوفر للمستهلكين حاليا: 3840x2160 او ال4K.
المشهد الأول من لعبة Team Fortress 2 الشهيرة، والصورة ادناه عند تصييرها بدقة 1080p:


اختصارا لعرض عدة صور توضح المشهد الكامل عند كل دقة وتسهيلا للقارئ لملاحظة الفروقات، قمت بأخذ عينات من كل واحد و دمجها جنبا الى جنب في الصورة التالية:


لاحظ عدم وضوح الحواف في دقة 720p في المثال رقم 1 مقارنة بدقتي 1080p و 4k. اما في المثال رقم 2 فسترى ان هنالك بعض التفاصيل الصغيرة التي لم تظهر الا في دقة 4k. في المثال 3، لاحظ الى نهايتي الصهريج وبهتان الخط الأسود مع انخفاض الدقة. ولاحظ أيضاً الى اختفاء تفاصيل الغطاء في دقة 720p.

المشهد الثاني التقط من لعبة Crysis 3 المعروفة لمرحلة مبكرة في اللعبة. هذه المرحلة بها بعض التفاصيل المشابهة للمثال النظري اعلاه، حيث ان احداثها تدور في منطقة تغطيها الأعشاب والأشجار. الصورة ادناه التقطت بدقة 1080p



وكما هو الحال في المشهد الأول، قمت بأخذ عينات من كل مشهد ودمجها في صورة توضحية واحدة:


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

التعرج Alising ومكافحة التعرج Anti-Alising

مصطلح الـAliasing مصطلح واسع يشمل العديد من العيوب التي تحدث للمواد الرقمية (والتناظرية). لكن في نطاق الCGI والقيمز عموماً عادة (وليس دائماً) ما يستخدم للإشارة الى عيب معين: التعرج.
الشكل المستطيل للبكسلات يجعل عملية رسم خط مستقيم بدون اي عيوب امراً يسيراً، لكنه يصبح مشكلة كبيرة عند رسم اي شكل يتطلب تراص غير عامودي للبكسلات ذات اللون الواحد (كالدوائر والخطوط المائلة مثلا). هذا الأمر ينتج عنه شكل اقرب للسلم او المنشار كما في المثالين:

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


بالنسبة للصورة الثانية، فتلك الثلاث مجموعات مرسومة بنفس الدقة الأصلية و تم تكبيرها في المجموعتين الاخيرتين. وكما يتضح من الصورة اعلاه، فإن التشوه يزداد وضوحاً كلما زادت دقة العرض النهائية للصورة المعروضة بدون زيادة في دقة الصورة الأصلية.

لمعالجة هذه المشكلة، استحدثت عدة طرق وتقنيات جمعت في تعريف واحد: مكافحة التعرج (Anti-Aliasing) او اختصاراً AA. اقدم هذه الطرق هي ما يعرف بالـSupersampling، حيث يتم فيها تصيير المشهد بدقة اكبر من دقة العرض النهائي، ومن ثم تصغيرها لدقة العرض النهائي والإستفادة من الإستقراء الداخلي في جعل الأماكن التي تعاني من الaliasing ذات تدرج منتظم في لون البكسلات، مما يغطي على التعرج الحاصل في تلك المنطقة بالإستفادة من ضعف قدرة الجهاز البصري للإنسان على تمييز التدرج الواسع في الألوان مقارنة بالاختلاف المفاجئ.
نظام الSupersampling -على الرغم من قدمه الى انه يتطلب قدرات حوسبية كبيرة لإجرائه (حيث ان القدرة المتطلبة لتصيير مشهد ما عادة ما تتناسب طردياً مع دقة هذا المشهد، بالإضافة لعوامل اخرى). لذا استحدثت تقنيات اخرى تدور معظمها حول منطق واحد: البحث عن المناطق التي يحصل فيها التعرج (او بلغة اخرى: البحث عن حواف الأجسام داخل الصورة، حيث ان الحواف هي اكثر اماكن يحدث فيها التعرج) ومن ثم اجراء عملية تمويه (blur) لها. نظرياً فإن هذا التمويه لا يلاحظ الا عند تكبير الحافة المموهة، اما عند عرضها بالحجم الأصلي فيستفاد من ميل الجهاز البصري للغض عن تدرج الالوان كما ذكر اعلاه.


بالإضافة للSupersampling (او الSSAA) هنالك ايضاً طريقة تسمة ال Multisampling AA، والتي تعتبر بديلاً اقل تطلبا من الهاردوير للSSAA بطريقة عمل مشابهة بعض الشيء.
على الجانب الأخر نجد التقنيات التي تعمل على تمويه الحواف المتعرجة فقط، كمثال لهذه التقنيات أذكر ال Fast Approximate AA (او الFXAA)، الذي ربما يكون اقل الطرق تطلباً للقدرة الحوسبية.  اذكر ايضاً الMorphological AA (او الMLAA) من AMD/ATI.
هنالك ايضاً تقنية الSubpixel Morphological AA (او الSMAA) والتي عرفت -حسب مخترعيها- على انها مزيج من افضل مافي الMLAA والMSAA.
واخيراً أذكر تقنية الTemporal AA او الTXAA الحصرية لإنفيديا.

(تصحيح: في النص الأصلي ذكر ان الMLAA تقنية حصرية لبطاقات AMD، والصحيح انها حصرية فقط عن التطبيق عبر الdriver، لكنها لا تزال متاحة لجميع البطاقات الأخرى عند تطبيقها داخل القيم نفسه او بإستخدام سوفتوير اخر. الشكر لـMuhammed Abd-Elhameed لهذا التصحيح)

ربما يفكر احدكم ان محاول حفظ هذه الأسماء مجهد ولا ضرورة له، بل حتى ان الكثير من المطورين لا يبينون نوع المكافح المستخدم في اعدادات اللعبة ويستعيضون عن بخيارات مبهمة. اهمية معرفة هذه الاسماء تكمن في -بالإضافة لفروقات الجودة والاداء- طريقة عملها. تقنيات الTXAA,FXAA, MLAA والSMAA جميعها تقنيات ما يعرف بالمعالجة بعد التصيير (أو الpost process techniques). هذه التقنيات تجرى عمليات البحث عن الحواف وتمويهها بعد تصيير المشهد النهائي، مقارنة بالطرق الاقدم مثل الـMSAA التي تعمل على مكونات الصورة البدائية من خطوط ومضلعات قبل التصيير. ميزة الطرق الـpost process انه بإمكانها العمل على -تقريبا- جميع محركات الألعاب بتأثير قليل على الأداء. من عيوبها لكن انها قد تموه اجزاءا من الصورة ليس بها اي تعرج (بحكم كون خوارزميات البحث عن الحواف غير دقيقة 100%).
على الجانب الأخر، فإن تقنيات مثل الMSAA تتطلب ان تكون مدمجة في كتابة شفرة اللعبة، وتتطلب قدرة حوسبية كبيرة نسبيا مقارنة بالسابق ذكرهم، لكنها تظل اقل تطلباً من الـSSAA.

اغلب هذه التقنيات تأتي بعدة مستويات، تكون عادة مضاعفات الرقم 2، وتكتب 2x، 4x, 8x الخ. المعنى خلف هذه المستويات يختلف حسب التقنية، لكن يمكن التعميم بالقول ان كل مستوى اعلى اكثر تطلباً لقدرة المعالجة وجودة القضاء على التعرج. فمثلا بالنسبة للSSAA فإن هذا المستوى يوضح قيمة مضاعفة الدقة. عند 2x فإن الصورة ستُصيّر في ضعف دقة العرض، اما في 8x فستصير في ثماني اضعافها، وهكذا.

(اضافة PS: الـTXAA ربما تأتي بعيب اضافة تمويه للصورة، لكن التقنية تمتاز عن منافسيها (عدا الSSAA) بكونها مانعة لنوع خاص من الAliasing يسمى بالـTemporal AA، هذا النوع ذو تأثير يظهر في الصور المتحركة فقط وليس الثابتة، بينما اغلب طرق مكافحة التعرج تختص بمعالجتها في الصور الثابتة. لكن للأسف، الحديث عن هذا النوع من التعرج ليس ضمن نطاق هذا الموضوع)



لننتقل من الجانب النظري لأمثلة عملية، ولنبدأ بالمشهد التالي من لعبة Half-Life 2

ولاحظ لظهور اغلب الحواف كالمنشار. اما عند تطبيق الMSAA بمستوى 8x تصبح الصورة:

لاحظ اختفاء جميع التعرج في الصورة عدا المناطق البعيدة جدا.

كمثال اخر، لنأخذ هذا المشهد من لعبة Watch_dogs بدون اي مكافح تعرج:


لعبة Watch_dogs تتيح عدة خيارات لمكافحة التعرج، قمت بتجريبها جميعا (بأقصي مستوى متاح لكل خيار) وكان الناتج:








لاحظ التموه الكبير في كلاً من الTXAA والFXAA، بينما تجد ان الMSAA اقل تموها مع المحفاظة على قدرتها على القضاء على التعرج. لاحظ ايضا على الرغم من ان الSMAA تقنية معالجة بعد التصيير، الا انها اقل ضبابية من الMSAA.


مثال اخر من نفسه المشهد:







ومثال ثالث:







اما لتوضيح تقنية الSSAA فلنأخذ هذا المشهد من لعبة Call of Duty: Advanced Warfare:



ولنأخذ الأمثلة التالية:




ملحوظة: ذكرت اعلاه ان الSSAA تقنية غالباً ما تحتاج قدرة حوسبية عالية، وهذا الأمر صحيح حتى في ادنى المستويات (2x). اما في مستوياتها العليا كالـ16x فالقليل من الهاردوير بإمكانه تشغيلها عند العمل بدقة عرض اعلى من 900p. لعبة CoD:AW بإمكانها دعم هذا المستوى، لكن عند تشغيلها فيه وصل الضغط على بطاقتي الصورية (GTX 780Ti، ضمن اسرع 5 بطاقات في العالم حالياُ) الى حد جعلها عاجزة حتى عن عرض الtextures بصورة صحيحة:



وبالحديث عن الtextures، ننتقل الى الجزء الثالث من هذا المقال.

الTextures وفلترتها

الـ"صورة" من وجهة نظر (تورية غير مقصودة) الجهاز البصري هي عبارة عن مجموعة كبيرة من الفوتونات وجدت طريقها الى العين. كل فوتون (او مجموعة من الفوتونات) تأتي بطول موجي مختلف اتى به من المصدر او نتيجة لتصادمه مع جسم اخر ادى الى اختلاف هذ الطول الموجي. هذا الطول الموجي هو ما يحدد "لون" الفوتون وبالتالي لون حزمة الفوتونات او شعاع الضوء، وبالتالي لون تلك النقطة المعينة من الفضاء.
اذا نظرت لصفحة بيضاء بها كتابة بلون ازرق، فإن "الصورة" التي ستراها لهذا الكتاب هي نتيجة انعكاس الفوتونات بلون الصفحة الأبيض تتخلها مجموعة اخرى انعكست بلون الحبر الأزرق. او -بلغة اخرى- فإن "الصورة" ناتجة من اختلاف في المواد التي انعكس عليها هذا الفوتون.
عند محاولة تصيير هذا الكتاب، قد تستنج انه يجب علينا ان نحاول تعيين مادة مختلفة (حبر بلون مختلف) لكل جزيء من الجسم المنمذج بواسطة الحاسب. هذه الطريقة ربما تكون الأقرب للواقع، لكنها غير عملية البتة حتى ان افترضنا ان الكتابة على ورقة تغيرها منتظم، ما بالك بلوحة زيتية من احد الفنانين التشكيليين مثلا؟ 
لهذا الغرض، فإن تصيير الصور بواسطة الحاسب يعتمد على استخدام صور جاهزة لهذه التفاصيل المراد طباعتها على الأجسام. ففي حالة الكتاب اعلاه، بدلا عن تعيين مواد مختلفة لكل جزئ من النموذج، بإمكاننا اخذ صورة لهذه الصفحة و نسجها على النموذج. لذا عن عرض هذ النموذج ستظهر لنا الصورة المنسوجة كأنها مصيرة بواسطة الحاسب. هذه الصورة هي ما يعرف بالtexture.

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


لاحظ انه على الرغم من وجودة اضائة ووجود نماذج، الا ان المشهد لا حياة فيه. فما الكتاب بدون زخرفة غلافه؟ وما الهاتف بدون شيئ معروض على شاشته؟ وكيف بمنضدة خشبية ان تكون بيضاء ليس عليها اي تفاصيل؟ لهذه الأغرض، علينا ان ننسج فوق هذه النماذج صوراً -أو textures- لهذه التفاصيل، ولنستخدم هذه الصور:
لنخرج بهذا الناتج النهائي:

هذه -ببساطة- هي الtextures.

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

لتوضيح تأثير الدقة على جودة المشهد النهائي فلنأخذ -كمثال- هذه الصور:

في المثال أعلاه، قمت بأخذ صورة لنجيلة واخرى لحائطة قرميد و تصغيرها لثلاث مستويات، ومن ثم قمت بإكسائها او نسجها على نموذج توضيحي بسيط كما في التالي:

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

و هذا هو الحال مع اغلب خيارات الtextures في القيمز، اي مستوى من الtextures الموجودة في القيم ستستخدم في التصيير النهائي. ولنأخذ المثال العملي التالي، ومرة اخرى سنأخذ مشهداً من لعبة Team Fortress 2. الصورة الأولى أخذت بإستخدام اقل اعدادات ممكن للtextures في خيارات اللعبة، اما الثانية اخذت في اعلى خيار ممكن.





لا اعتقد انه هنالك حاجة للتعليق هنا. فروقات الجودة بين الحدود العليا والدنيا للtextures في القيمز من اكثر التغيرات وضوحاً وأسهلها ملاحظة.
لنأخذ مثالا اخر من لعبة Fallout: New Vegas، وبالمثل، في الصورة الأولى لأقل الاعدادات جودة والثانية لأعلاها.





واخيراً فلنأخذ هذا المثال من لعبة CoD: Advanced Warfare


(وعشان ننتهي من هذا المقال الفات حده زمان دة، نمشي للجزئية التانية):

فلترة الtextures:
ذكرت في جزئية الدقة اعلاه ان الصورة الرقمية (عادة، وليس دائماً) عبارة مصفوفة من البكسلات. عند تصير صورة بدقة مساوية لدقة العرض، فإن كل بكسل من الصورة السوفتوير سيماثل بكسل من الصورة الهاردوير, اما الtextures فهي ذات احجام تختلف بإختلاف موضعها في الصورة (بالأخذ في الاعتبار استخدامها النهائي وليست دقتها الأصل)، لذا غالبا ما ستجد ان عدة (او كل) بكسلات من الtextures (ولهذا الغرض عادة ما تسمى texels) غير موازية لبكسلات العرض النهائي. لذا يجب اجراء استقراء داخلي لمعرفة قيمة هذا البكسل.

ايضا، فإن الصور المستخدمة في الtextures تؤخذ بمنظور عامودي على الشكل او الرسم المراد تحويلها لtexture، لذا  تجد ناتج هذه العملية (عدا بعض الحالات الخاصة، لكن هذا خارج نطاق الموضوع) مستطيل الشكل. عرض هذه الصورة بنفس منظور تصويرها سينتج نفس شكل المصدر، لكن هذه الحالة نادراً ما تحدث في القيمز. فالtexture المكسوة على الكتاب في المثال النظري أعلاه ينظر اليها بزاوية مختلفة مقارنة بزاوية التصوير. لذا فإن الشكل المستطيل لهذه الtexture سيتوجب ان يعرض على انه شبه منحرف، اي ان التِكسِلات (للtexture) في الجانب العلوي من (الضلع الطويل) ستوزع على كمية بكسلات (للصورة النهائية) اكبر من تلك في الجانب السفلي (الضلع القصير). وبالمثل عند محاولة اكساء texture على مجسم كروي او اي شكل غير مستطيل اخر.

التقنيات المستخدمة لإيجاد قيم الوان بكسلات العرض النهائي عند استخدام الtextures تعرف بفلاتر الtextures. وعند الحديث عن القيمز تنحصر هذه التقنيات في ثلاث: Bilinear filtering, Trilinear Filtering و Anisotropic Filtering.

عملياً، فالفرق بين Bilinear و الTrilinear ضئيل نسبياً (نسبة لتشابه طريقة عمليهما)، اما الAnisotropic (ويسمى اختصارا AF) فيأتي في قمة هرم الجودة، حيث انه يأخذ في الإعتبار عدم تناسق شكل عرض الtexture النهائي، وهذه هي الحالة غالبة الحدوث في القيمز. الAF -مثل طرق مكافحة التعرج- يأتي بعدة مستويات، من x1 وحتى x16. وكمثال عملي لنأخذ هذا المشهد من Half-Life 2 عند استخدام الbilinear filter.



لاحظ لتردي جودة الtexture ابتدائا من منتصف الطريق، اي كلما زادت زاوية النظر (وبالتالي زيادة الفرق بين الضلع الكبير والصغير للشكل شبه المنحرف الذي ستكسى على الtexture). لنركز على هذا الجزء من الصورة ونحول الفلترة لتقنية الAF بمستوى x16

لاحظ استمرار جودة الtexture في حالة استخدام الAF حتى مسافة اطول (او زاوية نظر اكبر، الى الحد الذي يجعل النسبة بين ضلعي شبه المنحرف اقرب الى ما لا نهاية) مقارنة بالBilinear.
وكأخر صورتين لهذا المقال، لنأخذ مشهدا من لعبة Tomb Raider الاخيرة مصيرة بفلتري الBilinear و الAF x16 على التوالي. حاول البحث عن الفروقات بنفسك!





وبهذا اختتم هذا الجزء من الحديث عن اعدادات الجرافيكس في القيمز.

في الجزء القادم سأتحدث عن اعدادات ومفاهيم اقل وضوحاً لكنها ليست بأقل اهمية: الظلال، الانعكاسات ومصطلحات مثل الTesselation والAmbient Occlusion بالإضافة الى عدة مواضيع اخرى.

الى ذلك الوقت....