Я создаю свои собственные мипмапы при создании текстур, и как только я включаю мипмапы через GL_LINEAR_MIPMAP_NEAREST (или что угодно, MIPMAP), текстуры - это просто очень темный, размытый беспорядок.Если я переключусь на GL_LINEAR, все в порядке.
Вот как я создаю текстуру:
glGenTextures(1, &m_TextureId);
glBindTexture( GL_TEXTURE_2D, id );
int level = 0;
jobject mippedBitmap = srcBitmap;
while (width >= 2 && height >= 2) {
jniEnv->CallStaticVoidMethod(s_GLUtilsClass, s_texImage2DMethodID,
GL_TEXTURE_2D, level, mippedBitmap, 0);
width >>= 1;
height >>= 1;
level++;
mippedBitmap = createScaledBitmap(jniEnv, srcBitmap, width, height, true);
}
Я пропустил все вызовы Bitmap.recycle () / NewGlobalRef ()для краткости.createScaledBitmap
, очевидно, является вызовом JNI для Bitmap.createScaledBitmap ().
Я также пробовал другую версию texImage2D, которая принимает формат и тип растрового изображения.Я убедился, что это всегда RGBA.
РЕДАКТИРОВАТЬ: Чтобы уточнить текстуры - они действительно почти черные.Я попробовал eraseColor () на мипах с яркими цветами, и они все еще очень темные.