باستخدام OpenGL ES 2.0 FrameBuffer (FBO) واستنسل في الرموز الأصلية Android (NDK)

StackOverflow https://stackoverflow.com/questions/5993634

سؤال

أحاول توليد كائن Frambuffer واستخدام الاستنسل داخل تطبيق Android الأصلي باستخدام NDK (R5B). الجهاز المستهدف هو تشغيل Froyo 2.2، ودعم OpenGL ES 2.0.

لذلك، لقد كنت ترميز الكثير من كود GL في Libs C ++ الأصلية الخاصة بي ومجازة حصلوا على أي مشكلة باستثناء هذا. أنا فقط لا يمكن أن يجعلها تعمل.

إليك كود Snipplet لإنشاء FramebUffer. الانتهاء هو كل شيء جيد، ولكن لا تزال الشاشة أسود بالكامل. يبدو الأمر مثل FBO، فأنا لا بد أن يكون ملتزما حقا لسطح GL الذي تم إنشاؤه بواسطة جزء Java من التطبيق. إن بقية رمز التطبيق الخاص بي هو كل شيء جيد، إذا قمت بإزالة إنشاء FBO والتجليد، كل شيء يعمل بشكل جيد تماما إلا أنني لا أملك الإستنسل الذي أحتاجه لتطبيقي. giveacodicetagpre.

لقد حاولت أيضا التقديم إلى نسيج ثنائي الأبعاد بدلا من renderbuffer ... لم تنجح أيضا.

لذلك، هل هناك طريقة يمكنني إصلاح هذا؟ هل أحصل على شيء خاطئ هنا؟ إذا كان لدى أي شخص أي أفكار، يرجى معرفة Lemme .... تم إنفاق الكثير من الوقت في البحث عن هذه المشكلة ... HEHE؛)

شكرا مقدما!

هتافات


تحرير:

حسنا، لقد تمكنت من جعل العمل العازلة الاستنسل ولكن FBO لا تعمل فقط. أعتقد أن OpenGL ES 2.0 غير مدعوم بالكامل بواسطة Android (باستخدام R5B هنا BTW). أعتقد أنه يتم تعريف الأسلوب كعبات، ولكن لم يتم تنفيذها بالكامل. أو لا يربط GlsurfaceView بشكل صحيح مع FBOS.

كما هو الحال بالنسبة لعازلة الاستنسل، كان علي أن أفعل giveacodicetagpre.

وإزالة استخدام gldepthmask من أجل العمل بشكل صحيح.

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

المحلول

@ zennichimaro، لاستخدام المخزن المؤقت الاستنسل!

أثناء التهيئة: giveacodicetagpre.

خلال التقديم: giveacodicetagpre.

عندما أحتاج إلى استخدام الاستنسل، استخدم الأساليب التالية اعتمادا على ما أحتاج إليه: giveacodicetagpre.

وأخيرا أقوم بتقنية المرور المزدوجة بالسحب داخل الاستنسل ... إليكم مثال: giveacodicetagpre.

التعليمات البرمجية معقدة إلى حد ما، لذا من الصعب نشر ما يتعلق بالستنسل، ولكن آمل أن يساعد؛)

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