النتائج 16 إلى 30 من 95

الموضوع: مشاكل التقطيع tearing فى الألعاب (أسباب وحلول)

مشاهدة المواضيع

المشاركة السابقة المشاركة السابقة   المشاركة التالية المشاركة التالية
  1. #1
    إداري سابق الصورة الرمزية Ahmed.Elsayed
    تاريخ التسجيل
    Apr 2011
    المشاركات
    8,156
    الدولة: Egypt
    معدل تقييم المستوى
    210

    مشاكل التقطيع tearing فى الألعاب (أسباب وحلول)

    مشاكل التقطيع tearing فى الألعاب (أسباب وحلول)


    فى هذا الموضوع بأذن الله سيتم شرح الأسباب التى تؤدى إلى حدوث التقطيع فى الألعاب وطرق علاجها البدائية والحديثة

    وأول الأسباب التى ممكن أن تؤدى إلى حدوث تقطيع tearing فى الصور المعروضة على الشاشة هو زيادة معدل الأطارات التى يتم أرسالها عن طريق كارت الشاشة عن المعدل الذى تستطيع عرضه الشاشة

    فكل شاشة لها معدل أنعاش محدد (Refresh Rate) لكل دقة عرض لا تستطيع أن تتخطاه وفى معظم الشاشات ال LCD لا يزيد عن 60hz بالثانية أى أن الشاشة تستطيع تجديد نفسها 60 مرة بالثانية

    فإذا قام كارت الشاشة بأرسال 80 أطار بالثانية إلى شاشة بمعدل أنعاش 60hz فسيحدث عنق زجاجة بالنسبة للشاشة ولن تستطيع مجاراة سرعة كارت الشاشة فستقوم بأستقبال أكثر من صورة كدفعة واحدة فى الوقت الذى من المفروض فيه أن تعرض الشاشة صورة واحدة فستظهر أطارات غير مكتملة أضافية فى المنتصف وستسبب فى ظهور تقطيع بالصورة ويظهر هذا بشكل واضح عند التحرك يميناً ويساراً بسرعة بعرض الشاشة سريعاً كما هو موضح






    وثانى الأسباب التى ممكن أن تؤدى إلى ظهور تقطيع بالصور هو أرسال كارت الشاشة لعدد صور أقل مما تستطيع عرضه الشاشة

    وهذا عكس ما تم ذكره سابقاً فعنق الزجاجة المتسبب فيه هو كارت الشاشة وليس الشاشة فعند أرسال 40 فريم لشاشة تستطيع عرض 60 أطار فى الثانية فستطلب الشاشة أطارات أزيد مما يمكن أن يوفره كارت الشاشة مما سيتسبب فى ظهور تقطيع أيضاً بالصورة !

    فالسبب فى التقطيع هذه المرة هو إظهار الشاشة لأطارات لم يتم أكتمالها عن طريق كارت الشاشة


    والحل لمشكلة التقطيع التى تظهر فى الحالتين السابقتين هو إستخدام خاصية V-sync (التزامن الرأسى) وتقوم هذه الخاصية بالمزامنة الرأسية بعد كل أطار يتم ظهور على الشاشة لضمان ظهور أطارات كاملة مستقيمة وغير متقطعة مما يتسبب فى زيادة الفترة الزمنية بين كل أطار والاَخر مما يتسبب فى غلق معدل الفريم على 30 بدلاً من 60 فى بعض الألعاب.

    ولكن العيب الأكبر فى هذه الخاصية هو التسبب فى تأخر معدل أستجابة اللعبة (Input Lag) للمتحكمات مثل الماوس والكيبورد أو ذراع التحكم الخارجى game pad

    وللتخلص من عيوب ال V-sync تم ظهور خاصية قديمة وهى Triple Buffering وهى تقنية تم أستخدامها لمعالجة مشاكل ال V-sync ولكن لم يتم تحديثها فهى تعمل فقط مع ألعاب OpenGl ولم يتم إلحاقها حتى الاَن للعمل على ألعاب ال direct3d

    ولكن سيتم شرحها كتمهيد للخواص الأحدث وللتعرف على العيوب الموجودة فى طريقة العرض المعتادة Double Buffering والتى تسبب حدوث التقطيع بالصورة

    كيف يعمل Triple Buffering ؟

    فى البداية عند عمل كروت الشاشة كان يتم أستخدام ذاكرة داخلية صغيرة للكارت للأطارات التى يتم أرسالها للشاشة وتسمى ذاكرة وسيطة أو Buffer فيتم تخزين الأطار الذى سيتم ظهوره على الشاشة وبعد ظهوره على الشاشة يتم أرسال أطار اَخر وهكذا

    وهذه الطريقة لها مميزات لكن لها عيوب أيضاً وهى حدوث رعشة خفيفة بالصورة Flicker وتحدث بالعادة عند تحديث الشاشة بسرعة نفسها




    ولعلاج هذه المشكلة تم أستخدام ذاكرة تخزين ثنائية أو ما يطلق عليها double buffering وفى هذه الطريقة يتم أستخدام ذاكرتين تخزين وسيطيتين للنقل من كارت الشاشة إلى الشاشة واحدة منهم تسمى Back Buffer والأخرى تسمى Front Buffer

    ال Front Buffer هى التى ترسل إلى الشاشة أولاً وال Back Buffer يتم أرسالها بعد أنتهاء عرض ال Front Buffer

    وأثناء عرض ال Front Buffer إلى الشاشة يتم تغيير أسم ال Back Buffer إلى Front Buffer وعرض ال Front Buffer أثناء أرسال كارت الشاشة الأطار الذى يليه إلى Back Buffer لتسريع عملية العرض وهكذا





    وهذه الطريقة تمنع حدوث الرعشة التى ممكن أن تحدث أثناء عرض الصورة لكن تسببت فى ظهور عيب جديد وهو حدوث التقطيع بالصورة عند عرض أطارين مختلفيين بسرعة والذى تم علاجه عن طريق إستخدام ال V-Sync

    ولقد تعرفنا سابقاً على عيوب إستخدام ال V-Sync وهى التأثير على أداء كارت الشاشة عن طريق غلق معدل الفريم على 60 أو 30 وزيادة الوقت المستغرق لعرض كل أطار مما يتسبب فى تأخر أستجابة المتحكمات Controllers أو ما يسمى ب Input Lag

    وتم حل هذه المشكلة قديماً عن طريق إستخدام Triple Buffering بدلاً من Double Buffering والأسم دال على معناه فتم أستخدام مكان أضافى لتخزين الأطارات

    والفائدة من عمل ذلك هو تخزين أطار أضافى لتحويله للعرض إلى الشاشة عند الأحتياج له مما مما يعطى سرعة فى العرض على الشاشة وتقليل ال Input lag الذى يتسبب به إستخدام ال V-Sync




    وللتوضيح بشكل أكبر سأقوم بعرض مثال توضيحى عن عرض مشهد عبارة عن 300 أطار فى الثانية على شاشة بمعدل أنعاش 60hz

    وسيتم التوضيح عن طريق عرض صور توضيحية لما سيحدث لأول 15 أطار سيتم أرسالهم إلى الشاشة مع العلم بأن الشاشة ستقوم بتجديد نفسها كل 5 أطارات




    عند تجديد الشاشة كل ثانية المفروض أن اَخر صورة بالأسفل هى التى ستظهر على الشاشة

    لكن فى النهاية ستظهر 3 صور متتالية بهذا الشكل عند إستخدام ال Double Buffering وهى صور متقطعة من الأعلى والأسفل




    وعند إستخدام ال V-sync مع ال Double Buffering ستظهر بهذا الشكل



    وعند إستخدام ال V-sync مع ال Triple Buffering ستظهر بهذ الشكل :



    والشكل الأخير هو مشابه للصور المفروض أن تعرض على الشاشة عند إستخدام ال Double Buffering لكن بعد معالجة التقطيع الموجود بها

    فبهذا نصل إلى أن إستخدام ال Triple Buffering مع إستخدام ال V-Sync تم الحصول على مميزات ال V-Sync وتم التخلص نهائياً من عيوبها ولكن المشكلة الحقيقية أن شركة مايكروسوفت لم تتيح إستخدامه فى مكتبات ال DirectX للعمل مع ألعاب Direct3d !



    وهناك نقطة مهمة جداً وهو أنه عند إستخدام V-sync من داخل أعدادات اللعبة سيتم غلق معدل الأطارات على 30 فى بعض الأحيان فإذا كنت تفضل غلق معدل الفريم على 60 بدلاً من 30 فقم بأستخدام برنامج خارجى مثل D3DOverrider

    وهذا البرنامج ستجده موجود مع برنامج Rivatuner ولتحميل برنامج RivaTuner أضغط على هذا الرابط ...............
    هنا
    وبعد تحميل البرنامج قم بفتحه وسيطلب منك المكان المراد فك ملفات البرنامج به أختر أى مكان

    ثم بعد ذلك أدخل على المكان الذى قمت بفك ملفات البرنامج به وستجد مجلد بداخل مجلد RivaTuner أسمه D3DOverrider أدخل عليه وستجد ملف أسمه D3DOverrider قم بفتحه



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





    وأحياناً عندما ينخفض معدل الفريم ثم يرتفع مرة أخرى يحدث تقطيع بالصورة ويمكن حلها عن طريق غلق معدل الفريم بحيث لا يزيد عن رقم معين

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

    حمل برنامج Msi Afterburner وستجد معه برنامج صغير أسمه Msi Afterburner On-Screen Display Server لفتحه أدخل على قائمة Start ثم All Programs ثم أدخل على مجلد Msi Afterburner



    وبعد ذلك سيظهر لك البرنامج بجانب الساعة أضغط على السهم لأظهار جميع البرامج الموجودة بجانب الساعة ثم أضغط على البرنامج لفتحه



    ثم أضغط على أيقونة الأعدادات كما هو موضح بالصورة



    ثم أكتب الرقم الذى تريد ثتبيت معدل الفريم عليه فى خانة Framerate limit كما هو موضح بالصورة



    ولاحظ أنه لتثبيت معدل الفريم يجب فتح هذا البرنامج أثناء تشغيل اللعبة.



    ومؤخراً ظهر برنامج أسمه LucidLogix Virtu MVP وقدم أداتين مهمتين للتخلص من عيوب ال v-sync وهما أداة Virtual Sync و HyperFormance وسيتم شرحهم فى الجزء الثانى من الموضوع بأذن الله

    المصدر الذى تم الأعتماد عليه فى هذا الموضوع هو موقع
    https://www.anandtech.com وغير موجود فى أى منتديات أخرى عربية فبرجاء عند نقل الموضوع ذكر المصدر وهو منتدى عرب هاردوير.


    ننتقل إلى الجزء الثانى فى الموضوع وهو برنامج LucidLogix Virtu MVP وفى هذا البرنامج يوجد تقنيتين لمعالجة عيوب إستخدام ال V-Sync وهى HyperFormance و Virtual V-Sync وسيتم شرحهم بالتفصيل بأذن الله

    أولاً هذا البرنامج يقوم بالجمع ما بين كارت الشاشة الداخلى الموجود فى المعالجات بسوكت 1155 مع كارت الشاشة الخارجى لتخفيف الحمل على كارت الشاشة الخارجى وتسريع معدل أستجابته عن طريق توفيق معدل أستجابة كارت الشاشة مع الشاشة مع المتحكمات الخارجية Controllers ( مثل الماوس والكيبورد وذراع التحكم Game Pad )

    1- HyperFormance :

    يقوم بتحديد أى من الأطارات أو المهام المطبقة على كارت الشاشة التى لن يتم ظهورها بالنهاية ويقوم بأستبعادها من خط المعالجة القادم إلى المعالج الرسومى لتخفيف العبء عليه وأتاحة الفرصة له للتركيز على المهام المطلوبة منه مما يساعد فى تسرع معدل الأستجابة.


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

    وهذه الخاصية تقوم بالتأثير على برامج أظهار معدل الأطارات مثل برنامج fraps فلا يظهر المعدل الفعلى لعدد الأطارات بالثانية.

    2- Virtual V-Sync :

    يقوم بالتأكد من اَخر أطار من جميع الأطارات التى تم معالجتها تم عرضه على الشاشة بدون تقييد المعالج أو الشاشة إلى 60hz (أو أى معدل اَخر تستطيع الشاشة عرضه) ويقوم بتقليل Input Lag

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


    ولأعطاء ملخص بسيط : Virtual V-Sync ستعمل فقط عندما يكون معدل الأطارات أكثر من المعدل الذى تستطيع الشاشة عرضه ولا تقوم بزيادة معدل الأطارات ولكن تقوم بإزالة التقطيع وتجعل معدل الأستجابة للمتحكمات (mouse) أعلى من نظام V-sync العادى.



    ولكى تستطيع تشغيل برنامج Lucid Logix Virtu MVP يجب أن يتوافر معك معالج سوكت 1155 وبوردة متوافقة مع هذه التقنية وكارت شاشة خارجى

    ولمعرفة اللوحات المتوافقة مع هذه التقنية أدخل على هذا الرابط .................... هنا

    وبعد ذلك يجب تفعيل IGPU Multi Monitor من أعدادات البيوس لتشغيل الكارت المدمج مع الكارت الخارجى فى نفس الوقت

    وهذا شرح من لوحتى لكيفية عمل ذلك :










    وبعد ذلك أضغط على F10 لحفظ الأعدادات وقم بعد ذلك بتحميل اَخر تعريف لكارت الشاشة المدمج من موقع الشركة المنتجة وقم بتنصيبه وعمل ريستارت لجهازك

    وسيظهر لك كارت الشاشة المدمج وكارت الشاشة الخارجى فى نفس الوقت عند الدخول فى قائمة الأجهزة Device Manager كما هو موضح




    وبعد ذلك قم بتحميل البرنامج من على هذه الصفحة وأختيار اَخر نسخة موجودة ............. هنا

    وبعد تنصيب البرنامج وفتحه سيظهر لك شاشة البرنامج الرئيسية كما هو موضح



    كما هو ظاهر بالصورة فهناك زر On/Off يقوم بتعطيل البرنامج وتشغيله مرة أخرى
    وفى التبويب Performance يمكنك غلق خاصية HyperFormance أو Virtual V-Sync إذا أردت



    وبعد ذلك يمكنك الدخول على Applications ورؤية الأعدادات المخصصة لكل لعبة وتعديلها، وإذا لم تجد اللعبة موجودة فى قائمة الألعاب قم بالضغط على زر Add وحدد مكان اللعبة ثم أختر النظام D-Mode ثم أضغط على زر ok





    مع العلم بأن الخيار HyperFormance غير متوافق مع جميع الألعاب فلا يفضل تفعيله من خيارات اللعبة إذا كان معطل لعدم حدوث مشاكل باللعبة.

    ملحوظة أخرى مهمة جداً : إستخدام Virtual V-Sync لا يغنى عن إستخدام V-Sync لكن يحسن من أدائه فيجب تفعيل V-Sync من داخل أعدادات اللعبة.

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

    وعند تركيب الشاشة على الكارت المدمج سيعمل على نظام I-Mode وإذا قمت بتركيبه على كارت الشاشة الخارجى سيعمل على نظام D-Mode




    ونظام I-Mode يفضل أستخدامه عند عدم تشغيل الألعاب لأن الأداء ممكن أن يقل بنسبة قليلة ولكن عند التصفح وأستخدام جهازك فى تشغيل الأفلام والموسيقى لن يتم إستخدام كارت الشاشة الخارجى وسيتم إستخدام الكارت المدمج

    والميزة الأكبر لهذا النظام هو تسريع عملية تحويل الفيديو عن طريق إستخدام الشريحة الرسومية المدمجة بالمعالج

    وعلى الجانب الاَخر نظام D-Mode يفضل أستخدامه فى الألعاب الثقيلة لأعطاء أداء أفضل لأن عند توصيل الشاشة على الكارت المدمج يتم المعالجة عن طريق الكارت الخارجى وتحويل الأطارات لكارت الشاشة المدمج لعرضها فممكن أن يحدث هبوط بسيط بالأداء

    ولإستخدام وضع ال I-Mode يجب جعل IGPU من Primary Display فى أعدادات البيوس وإذا أردت أستخدام الكارت الخارجى أختر PCIE بدلاً من IGPU



    وهناك أسباب أخرى ممكن أن تسبب التقطيع وهى :

    1- عدم أنتظام وقت المعالجة ما بين أطار والأطار الذى يليه فممكن أن يأخذ معالجة أطار 2ms وبعد ذلك يستغرق الأطار الذى يليه فى المعالجة 20ms ثم يرجع مرة أخرى إلى معدله الطبيعى 2ms ففى الوقت الذى يحدث به زيادة فى وقت المعالجة ثم أنخفاضه مرة أخرى ممكن أن تشعر بتقطيع فى الصورة وهذا يختلف من كارت لكارت اَخر

    2- هناك سبب اَخر ممكن أن يجعلك تشعر بتقطيع فى الصورة وهو زيادة معدل أستجابة الشاشة فالشاشات بمعدل أستجابة 5ms فأكثر ممكن أن تشعر فيها أثناء عرض المشاهد السريعة بوجود خيالات للصورة القديمة أو ما يسمى بال Ghosting

    وفى الشاشات ال Asus يتم حل هذه المشكلة بتغيير قيمة الخيار Trace Free الموجود فى أعدادات الشاشة لكن فى الشاشات الأخرى غير متوافر هذا الخيار ولكن يمكن تقليله عن طريق زيادة تباين الشاشة وتقليل الأضاءة.


    وبهذا أكون قد أنتهيت من هذا الموضوع الطويل أرجوا ممن جرب هذا البرنامج عرض تجربته ليستفيد منها غيره وأرجوا من هواة نقل المواضيع ذكر المصدر وهو منتدى عرب هاردوير والسلام عليكم ورحمة الله وبركاته.
    التعديل الأخير تم بواسطة Ahmed.Elsayed ; 06-12-2014 الساعة 16:12

المفضلات

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •