سؤال

أنا أفكر في الرمي الضبابية في 2D البرنامج, ولكن أشك في النتائج الحالية خوارزمية.

توجهي يبدو مثل هذا في هذه اللحظة:

  • رسم backbuffer.
  • عندما الوقت تحديث الجبهة العازلة, مزيج backbuffer على الجبهة العازلة.
  • كرر

ما من شأنه أن يسبب "الضبابية" التأثير الواضح مزج ، كما الأجسام في الحركة سوف تترك يتلاشى درب.

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

هل هناك أي حلول اسمحوا لي أن تفعل ذلك بشكل أكثر كفاءة أو العائد تبحث أفضل نتيجة ؟

هل كانت مفيدة؟

المحلول

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

النهج الذي تستخدمه في هذه اللحظة يحاكي استمرار, كما لو كنت التقديم على القديم CRT مع بطء الفوسفور.هذا ليس نفس الشيء مثل الضبابية.إذا كان الإطار الخاص بك مدة 20ms (1000/50) ثم حركة عدم وضوح الإطار يتكون من الاداءات التي تغطي 20ms مدة الإطار ، مع كل نفس ألفا الترجيح.استمرار الحل يتكون من الاداءات من 20, 40, 60, 80, 100ms قبل يتلاشى تدريجيا.

نصائح أخرى

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

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

قد لا تكون حادة جدا في كل شيء.كل شيء يعتمد على مزج الدالة المستخدمة.فعلى سبيل المثال 0.1/0.9 السابقة/الحالية صورة على التوالي سوف توفر بعض ضعاف درب.

وأود أن أضيف أن هذا هو أساسا كيف الحركة الضبابية في OpenGL يتم (خلال تراكم العازلة)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top