OpenGL عكس البكسلات الإطار
-
27-09-2019 - |
سؤال
كنت أتساءل كانت أفضل طريقة لعكس البكسلات الملونة في المخزن المؤقت للإطار. أعلم أنه من الممكن القيام به glReadPixels()
و glDrawPixels()
لكن أداء تلك المكالمات كبيرة جدًا.
في الأساس ، ما أحاول القيام به هو أن يكون لديك شعر متقاطع مقلوب وهو دائمًا ما يكون مرئيًا بغض النظر عن ما يقف وراءه. على سبيل المثال ، كان لدي صورة نقطية أو نسيج تعسفي ، وأجعلها تجري دون اختبار العمق بعد رسم المشهد ، وسيتم قلب جميع وحدات البكسل العازلة تحت البكسلات المقنعة (ألفا الكاملة) من النسيج.
لقد كنت أحاول القيام بذلك بنسيج ، لكنني أحصل على بعض النتائج الغريبة ، وأيضًا جميع خيارات المزج التي ما زلت أجده مربكًا.
المحلول
أعط شيئًا مثل هذه تجربة:
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
// render geometry
glDisable(GL_COLOR_LOGIC_OP);
نصائح أخرى
ماذا عن:
glEnable (GL_BLEND);
glBlend (GL_ONE_MINUS_DST_COLOR, GL_ZERO);
لا تنتمي إلى StackOverflow