في OpenGL ES، كيف يمكنني تحميل الملمس الذي لديه بكسل شفافة؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

وبعد ذلك العرض بشكل صحيح؟ على سبيل المثال سيكون وجود الكرة المستديرة في المستطيل حين التمكن من رؤية نسيج آخر في الخلفية.

وتحرير: في هذه اللحظة، وعندما كنت تحميل الملمس يتم عرض بكسل شفافة من الصورة المصدر كما الأسود

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

المحلول

لفون وN95 يعمل هذا:

إذا كنت تقوم بتحميل الملمس من البيانات الخام، تعيين التنسيق الداخلي ومصدر لGL_RGBA.

glTexImage2D(GL_TEXTURE_2D, 0, 
    GL_RGBA,
    textureWidth,
    textureHeight, 
    0, 
    GL_RGBA,
    GL_UNSIGNED_BYTE,
    pointerToPixels);

وعند تقديم، تمكن ألفا مزيج:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);

نصائح أخرى

والجواب التي تقدمهاVirne صحيحة، وكنت قادرا على استخدامه لأجهزة الروبوت مع بعض التعديلات الصغيرة. الكائن myImage اعتدت هو صورة بابوا نيو غينيا القياسية مع الشفافية.

وأنا خلقت نسيج باستخدام هذا:

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, myImage, 0);

و(مثل Virne)، وتمكين مزيج ألفا عند تقديم:

gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
gl.glEnable(GL10.GL_BLEND);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top