Ahmed.Elsayed
06-05-2013, 21:26
https://i1082.photobucket.com/albums/j364/torbido/allah.gif
تكملة للموضوع الأول الذى قام المشرف العزيز Ahmed Abdelwahab بعمله سأقوم بشرح جزء جديد من التقنيات المستخدمة فى البطاقات الرسومية وهى تنعيم الحواف (Anti-Aliasing)
الموضوع طويل ولهذا تم تقسيمه على 3 مشاركات لتسهيل القراءة عليكم فعند الأنتهاء من قراءة المشاركة الأولى قم بالنزول لأسفل للوصول إلى المشاركة الثانية والثالثة من هذا الموضوع.
وهذا رابط الجزء الأول من الموضوع لمن لم يقرأه >>> التقنيات الرسومية (الجزء الأول) دقة العرض (https://arabhardware.net/forum/showthread.php?t=345978)
لكى نتعرف على مفهوم تنعيم الحواف سنفترض أنك قمت بتشغيل فيديو بدقة عرض ضعيفة 240p على شاشة 1080P ما الذى سيحدث ؟
بالعين المجردة ستلاحظ بأن النقط المكونة للصورة أصبحت عبارة عن مربعات ويحدث تشوه بالصورة وتم شرح ذلك بالتفصيل فى الجزء الأول من الموضوع
لكن لماذا حدث ذلك ؟
لأنه تم تكبير الصورة لأضعاف حجمها عن طريق زيادة عدد النقاط المكونة للصورة،
ويتم معالجة هذه المشكلة فى الصور عن طريق فلاتر مخصصة لتنعيم الصورة مثل المستخدمة فى برنامج الفوتوشوب (مثل فلتر Blur والذى يستخدم لتنعيم الصورة بعد قصها أو لتنقية الصورة سيئة الجودة)
وهذه المشكلة موجودة أيضاً فى الجرافيك فعندما يتم تصميم المجسمات يتم تصميمها على أعلى دقة عرض يمكن العرض عليها ثم يتم بعد ذلك تصغيرها حسب دقة العرض المختارة من المستخدم، فيتسبب هذا فى ظهور تعرج فى الخطوط المكونة للمجسم وتظهر بشكل أكثر فى حواف المجسم الخارجية
ولحل هذه المشكلة تم إستخدام معالج تنعيم الحواف Anti-Aliasing
وهذا يطرح السؤال التالى - ما هو Anti-Aliasing ؟
- هى تقنية تستخدم لتنعيم حواف الخطوط المتعرجة، وتم إستخدام هذه التقنية عند بداية نزول كروت 3dfx Voodoo وتطورت لأكثر من نظام جديد مقدمة تحسينات وتطوير بالأداء عما كان عليه وسيتم شرح أنظمة التنعيم المختلفة من البداية حتى النهاية بأذن الله تعالى.
أولاً نظام التنعيم |Full-Scene Anti-Aliasing |FSAA أو |Super Sampling Anti-Aliasing |SSAA:
هو أقدم نظام تنعيم تم إستخدامه وكان يتم تنعيم الحواف عن طريق المقارنة بين لون النقاط المكونة للحواف والنقاط الموجودة بجانبها ودمجها لتكوين لون جديد وسط بين اللونين
ولتوضيح ذلك أنظر لهذه الصورة :
https://upload.wikimedia.org/wikipedia/en/6/61/Supersampling.png
تم دمج أربع ألوان لتكوين لون جديد وسط بين هذه الألوان وهذا قريب من تأثير ال Blur
وللتوضيح أكثر أنظر لهذه الصورة
https://files.tested.com/photos/2012/03/16/55-15471-screen_shot_2010_10_21_at_2.11.47_pm.png
لاحظ أن فى الجزء الأعلى من الصورة به خطوط متعرجة No AA وتم إستخدام تقنية تنعيم الحواف MSAA لتنعيم الحواف كما هو واضح فى الجزء الأسفل
ولاحظ بان الخطوط المتعرجة السوداء أصبحت بلون رمادى وهذا بسبب دمج اللون الأسود مع اللون الأبيض
ولكن هذا لم يكن كافياً ولتنعيم الحواف بشكل أفضل فيتم تزويد دقة العرض لأضعاف ما سيتم العرض عليه على الشاشة ثم يتم بعد ذلك تحجيمها لدقة العرض التى سيتم العرض عليها
فمثلاً عند إستخدام نظام تنعيم 4XFSAA كان يتم تكبير دقة العرض لأربع أضعاف ما سيتم العرض عليها مما يتيح إستخدام بيانات ألوان أدق مما كان سيتم إستخدامه قبل تكبير دقة العرض مما يقدم حواف أنعم من السابق
وهذه صورة توضيحية لخطوات عمل تنعيم للحواف عن طريق إستخدام 4XFSAA :
https://files.tested.com/photos/2012/03/16/55-15472-supersampling.jpg
لاحظ أن النقطة الحمراء تحولت فى الخطوة الثانية إلى 4 نقاط حمراء بعد زيادة دقة العرض وبعد ذلك عند تقليل دقة العرض مرة أخرى تم دمجها مع اللون الأزرق الموجود بجانبها وأصبحت لونها بنفسجى
مع أن هذه الطريقة جيدة فى تنعيم الحواف ولكن العيب الأكبر فى هذه التقنية هو أنه عندما يتم تكبير دقة العرض يؤدى إلى إستخدام مساحة أكبر من الرام الخاصة بكارت الشاشة حسب نسبة التنعيم المستخدمة ويتسبب بضغط على المعالج الرسومى.
ثانياً نظام التنعيم |Multisample anti-aliasing |MSAA :
وهو من أشهر الأنظمة المستخدمة فى تنعيم الحواف لكفائته ولتقليل إستخدام الرام الخاصة بكارت الشاشة عن نظام التنعيم السابق وسيتم شرح السبب فى ذلك بأذن الله فى السطور التالية
فى النظام السابق كان يتم عند تكبير دقة العرض كان يتم تزويد مساحة العرض لكل نقطة ويتم التعامل مع كل نقطة على حدة ولكن فى هذا النظام يتم تجميع النقاط المتشابهة ثم يتم تطبيق دمج الألوان المطبق على جميع الألوان المشابهة
وهذا مثال توضيحى لذلك :
https://files.tested.com/photos/2012/03/16/55-15473-multisampling.jpg
لاحظ أنه تم إختيار النقطة 1 و 2 كنقاط متشابهة (فهم الأثنين نفس اللون ومحاطين بثلاث نقاط زرقاء) فتم إختصار الوقت بتطبيق ما سيطبق على النقطة الأولى بتطبيقه على النقطة الثانية تلقائياً
ومع أن هذا النظام ليس بدقة النظام السابق لكنه قريب جداً منه ويعتبر أسرع لهذا تم إختفاء نظام FSAA من الألعاب وحل محله نظام MSAA بشكل دائم.
ثالثاً |Coverage-sampled anti-aliasing |CSAA| and Custom-filter anti-aliasing |CFAA :
نظراً لقدم نظام MSAA ولعدم إستخدامه للكروت الحديثة بكفائة قامت شركة Nvidia بإنشاء نظام CSAA وشركة AMD بإنشاء نظام CFAA تطويراً للنظام السابق
والنظامين يخزنان معلومات أكثر عن كل نقطة لكن يضغطان بشكل أقل على المعالج الرسومى فيقدمان مستوى أداء أفضل فى معالجة الجرافيك
ولكن نظام CFAA الذى لم يتم إستخدامه كثيراً لوجود عيوب به مثل الموضح بهذه الصورة
https://files.tested.com/photos/2012/03/16/55-15476-hl2_r600_08xwcfaa.jpg
لاحظ أن السياج الموجودة ناحية الشمال منعمة بشكل جيد لكن السياج الموجودة خلف البنت الموجودة فى الصورة تظهر كأنها غير موجودة.
فنظام التنعيم MSAA يوجد منه أكثر من خيار مثل 2X و 4X و 8X
وكقاعدة ثابتة أنه كلما زاد معامل الضرب الخاص بتنعيم الحواف زاد نسبة نعومة الحواف وزاد الضغط على المعالج الرسومى والمساحة المستخدمة من الرام
ولكن هذه القاعدة أختلفت مع أنظمة التنعيم الجديدة مثل Nvidia's CSAA فستجد أنه يصل إلى 32X ومع ذلك لن تجد أنه لا يمثل ضغط كبير على المعالج الرسومى عن طريق تقليل عدد النقاط المحولة فى مساحة العرض ولكن على حساب دقة الألوان وجودة الفيديو
ويتم إستخدام حرف Q مع بعض أنواع أنظمة ال CSAA فمثلاً عند إستخدام 8XQCSAA يتم تزويد عدد النقاط إلى 8 نقاط مثل 8XMSAA ولكن بضغط أقل على المعالج الرسومى فحرف Q يرمز إلى كلمة Quality
ومع الأرقام الكبيرة التى يتم إستخدامها فى أنظمة CFAA و CSAA الجديدة ستجد أنها مشابهة لأنظمة 4XMSAA و 8XMSAA فى ديناميكية العمل ولكن مع تحسين أكبر فى تنعيم الحواف.
وبهذا نكون قد أنتهينا من الجزء الأساسى من الموضوع لكن فى المشاركة التالية بأذن الله سأقوم بشرح أنظمة التنعيم الحديثة مثل أنظمة التنعيم الخاصة بكروت Nvidia مثل FXAA و TXAA ونظام التنعيم الخاص بكروت AMD وهو MLAA
وفى المشاركة الثالثة من هذا الموضوع سأقوم بأذن الله شرح نظام التنعيم الذى ظهر مع لعبة Crysis 2 وهو SMAA وكيفية إستخدام نظام FXAA و SMAA مع الألعاب التى لا تدعم هذه الأنظمة (هذه الطريقة تعمل مع كروت Nvidia و AMD)
وفى النهاية أرجوا أن يعجبكم هذا الموضوع وأى أستفسار برجاء طرحه بداخل الموضوع وليس على الخاص وبرجاء من هواة نقل المواضيع أن تقوم بذكر المصدر وهو منتدى عرب هاردوير.
تكملة للموضوع الأول الذى قام المشرف العزيز Ahmed Abdelwahab بعمله سأقوم بشرح جزء جديد من التقنيات المستخدمة فى البطاقات الرسومية وهى تنعيم الحواف (Anti-Aliasing)
الموضوع طويل ولهذا تم تقسيمه على 3 مشاركات لتسهيل القراءة عليكم فعند الأنتهاء من قراءة المشاركة الأولى قم بالنزول لأسفل للوصول إلى المشاركة الثانية والثالثة من هذا الموضوع.
وهذا رابط الجزء الأول من الموضوع لمن لم يقرأه >>> التقنيات الرسومية (الجزء الأول) دقة العرض (https://arabhardware.net/forum/showthread.php?t=345978)
لكى نتعرف على مفهوم تنعيم الحواف سنفترض أنك قمت بتشغيل فيديو بدقة عرض ضعيفة 240p على شاشة 1080P ما الذى سيحدث ؟
بالعين المجردة ستلاحظ بأن النقط المكونة للصورة أصبحت عبارة عن مربعات ويحدث تشوه بالصورة وتم شرح ذلك بالتفصيل فى الجزء الأول من الموضوع
لكن لماذا حدث ذلك ؟
لأنه تم تكبير الصورة لأضعاف حجمها عن طريق زيادة عدد النقاط المكونة للصورة،
ويتم معالجة هذه المشكلة فى الصور عن طريق فلاتر مخصصة لتنعيم الصورة مثل المستخدمة فى برنامج الفوتوشوب (مثل فلتر Blur والذى يستخدم لتنعيم الصورة بعد قصها أو لتنقية الصورة سيئة الجودة)
وهذه المشكلة موجودة أيضاً فى الجرافيك فعندما يتم تصميم المجسمات يتم تصميمها على أعلى دقة عرض يمكن العرض عليها ثم يتم بعد ذلك تصغيرها حسب دقة العرض المختارة من المستخدم، فيتسبب هذا فى ظهور تعرج فى الخطوط المكونة للمجسم وتظهر بشكل أكثر فى حواف المجسم الخارجية
ولحل هذه المشكلة تم إستخدام معالج تنعيم الحواف Anti-Aliasing
وهذا يطرح السؤال التالى - ما هو Anti-Aliasing ؟
- هى تقنية تستخدم لتنعيم حواف الخطوط المتعرجة، وتم إستخدام هذه التقنية عند بداية نزول كروت 3dfx Voodoo وتطورت لأكثر من نظام جديد مقدمة تحسينات وتطوير بالأداء عما كان عليه وسيتم شرح أنظمة التنعيم المختلفة من البداية حتى النهاية بأذن الله تعالى.
أولاً نظام التنعيم |Full-Scene Anti-Aliasing |FSAA أو |Super Sampling Anti-Aliasing |SSAA:
هو أقدم نظام تنعيم تم إستخدامه وكان يتم تنعيم الحواف عن طريق المقارنة بين لون النقاط المكونة للحواف والنقاط الموجودة بجانبها ودمجها لتكوين لون جديد وسط بين اللونين
ولتوضيح ذلك أنظر لهذه الصورة :
https://upload.wikimedia.org/wikipedia/en/6/61/Supersampling.png
تم دمج أربع ألوان لتكوين لون جديد وسط بين هذه الألوان وهذا قريب من تأثير ال Blur
وللتوضيح أكثر أنظر لهذه الصورة
https://files.tested.com/photos/2012/03/16/55-15471-screen_shot_2010_10_21_at_2.11.47_pm.png
لاحظ أن فى الجزء الأعلى من الصورة به خطوط متعرجة No AA وتم إستخدام تقنية تنعيم الحواف MSAA لتنعيم الحواف كما هو واضح فى الجزء الأسفل
ولاحظ بان الخطوط المتعرجة السوداء أصبحت بلون رمادى وهذا بسبب دمج اللون الأسود مع اللون الأبيض
ولكن هذا لم يكن كافياً ولتنعيم الحواف بشكل أفضل فيتم تزويد دقة العرض لأضعاف ما سيتم العرض عليه على الشاشة ثم يتم بعد ذلك تحجيمها لدقة العرض التى سيتم العرض عليها
فمثلاً عند إستخدام نظام تنعيم 4XFSAA كان يتم تكبير دقة العرض لأربع أضعاف ما سيتم العرض عليها مما يتيح إستخدام بيانات ألوان أدق مما كان سيتم إستخدامه قبل تكبير دقة العرض مما يقدم حواف أنعم من السابق
وهذه صورة توضيحية لخطوات عمل تنعيم للحواف عن طريق إستخدام 4XFSAA :
https://files.tested.com/photos/2012/03/16/55-15472-supersampling.jpg
لاحظ أن النقطة الحمراء تحولت فى الخطوة الثانية إلى 4 نقاط حمراء بعد زيادة دقة العرض وبعد ذلك عند تقليل دقة العرض مرة أخرى تم دمجها مع اللون الأزرق الموجود بجانبها وأصبحت لونها بنفسجى
مع أن هذه الطريقة جيدة فى تنعيم الحواف ولكن العيب الأكبر فى هذه التقنية هو أنه عندما يتم تكبير دقة العرض يؤدى إلى إستخدام مساحة أكبر من الرام الخاصة بكارت الشاشة حسب نسبة التنعيم المستخدمة ويتسبب بضغط على المعالج الرسومى.
ثانياً نظام التنعيم |Multisample anti-aliasing |MSAA :
وهو من أشهر الأنظمة المستخدمة فى تنعيم الحواف لكفائته ولتقليل إستخدام الرام الخاصة بكارت الشاشة عن نظام التنعيم السابق وسيتم شرح السبب فى ذلك بأذن الله فى السطور التالية
فى النظام السابق كان يتم عند تكبير دقة العرض كان يتم تزويد مساحة العرض لكل نقطة ويتم التعامل مع كل نقطة على حدة ولكن فى هذا النظام يتم تجميع النقاط المتشابهة ثم يتم تطبيق دمج الألوان المطبق على جميع الألوان المشابهة
وهذا مثال توضيحى لذلك :
https://files.tested.com/photos/2012/03/16/55-15473-multisampling.jpg
لاحظ أنه تم إختيار النقطة 1 و 2 كنقاط متشابهة (فهم الأثنين نفس اللون ومحاطين بثلاث نقاط زرقاء) فتم إختصار الوقت بتطبيق ما سيطبق على النقطة الأولى بتطبيقه على النقطة الثانية تلقائياً
ومع أن هذا النظام ليس بدقة النظام السابق لكنه قريب جداً منه ويعتبر أسرع لهذا تم إختفاء نظام FSAA من الألعاب وحل محله نظام MSAA بشكل دائم.
ثالثاً |Coverage-sampled anti-aliasing |CSAA| and Custom-filter anti-aliasing |CFAA :
نظراً لقدم نظام MSAA ولعدم إستخدامه للكروت الحديثة بكفائة قامت شركة Nvidia بإنشاء نظام CSAA وشركة AMD بإنشاء نظام CFAA تطويراً للنظام السابق
والنظامين يخزنان معلومات أكثر عن كل نقطة لكن يضغطان بشكل أقل على المعالج الرسومى فيقدمان مستوى أداء أفضل فى معالجة الجرافيك
ولكن نظام CFAA الذى لم يتم إستخدامه كثيراً لوجود عيوب به مثل الموضح بهذه الصورة
https://files.tested.com/photos/2012/03/16/55-15476-hl2_r600_08xwcfaa.jpg
لاحظ أن السياج الموجودة ناحية الشمال منعمة بشكل جيد لكن السياج الموجودة خلف البنت الموجودة فى الصورة تظهر كأنها غير موجودة.
فنظام التنعيم MSAA يوجد منه أكثر من خيار مثل 2X و 4X و 8X
وكقاعدة ثابتة أنه كلما زاد معامل الضرب الخاص بتنعيم الحواف زاد نسبة نعومة الحواف وزاد الضغط على المعالج الرسومى والمساحة المستخدمة من الرام
ولكن هذه القاعدة أختلفت مع أنظمة التنعيم الجديدة مثل Nvidia's CSAA فستجد أنه يصل إلى 32X ومع ذلك لن تجد أنه لا يمثل ضغط كبير على المعالج الرسومى عن طريق تقليل عدد النقاط المحولة فى مساحة العرض ولكن على حساب دقة الألوان وجودة الفيديو
ويتم إستخدام حرف Q مع بعض أنواع أنظمة ال CSAA فمثلاً عند إستخدام 8XQCSAA يتم تزويد عدد النقاط إلى 8 نقاط مثل 8XMSAA ولكن بضغط أقل على المعالج الرسومى فحرف Q يرمز إلى كلمة Quality
ومع الأرقام الكبيرة التى يتم إستخدامها فى أنظمة CFAA و CSAA الجديدة ستجد أنها مشابهة لأنظمة 4XMSAA و 8XMSAA فى ديناميكية العمل ولكن مع تحسين أكبر فى تنعيم الحواف.
وبهذا نكون قد أنتهينا من الجزء الأساسى من الموضوع لكن فى المشاركة التالية بأذن الله سأقوم بشرح أنظمة التنعيم الحديثة مثل أنظمة التنعيم الخاصة بكروت Nvidia مثل FXAA و TXAA ونظام التنعيم الخاص بكروت AMD وهو MLAA
وفى المشاركة الثالثة من هذا الموضوع سأقوم بأذن الله شرح نظام التنعيم الذى ظهر مع لعبة Crysis 2 وهو SMAA وكيفية إستخدام نظام FXAA و SMAA مع الألعاب التى لا تدعم هذه الأنظمة (هذه الطريقة تعمل مع كروت Nvidia و AMD)
وفى النهاية أرجوا أن يعجبكم هذا الموضوع وأى أستفسار برجاء طرحه بداخل الموضوع وليس على الخاص وبرجاء من هواة نقل المواضيع أن تقوم بذكر المصدر وهو منتدى عرب هاردوير.