GLES2.0 - Не уверен, что я правильно использую glTexImage2D - PullRequest
0 голосов
/ 07 октября 2018

новичок в этом вопросе, потерявший почти 3 дня работы без удачи, пытаясь выяснить проблему.

Область:

Хотите назначить один 1 уникальный цвет для объекта

Что я сделал:

// Align color
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
ShaderUtil.checkGLError(TAG, "alignColor: glActiveTexture");
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
ShaderUtil.checkGLError(TAG, "alignColor: glbindtexture");
GLES20.glTexParameteri(GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR_MIPMAP_LINEAR);
ShaderUtil.checkGLError(TAG, "alignColor: glTexParameteri1");
GLES20.glTexParameteri(GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);
ShaderUtil.checkGLError(TAG, "alignColor: glTexParameteri2");


ByteBuffer bb = ByteBuffer.allocateDirect(4);
bb.order(ByteOrder.nativeOrder());
IntBuffer ib = bb.asIntBuffer();
ib.put(0x0e5865ff);
ib.position(0);
bb.position(0);

GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, 1, 1, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, bb);
ShaderUtil.checkGLError(TAG, "alignColor: texImage2D");

Проблема:

Назначенный цвет не соответствует ожидаемому.В этом случае я ожидаю:

R 0e --> 14
G 58 --> 88
B 65 --> 101
A ff --> alpha 255

зеленоватого цвета, а у меня красный

Что я делаю не так?

1 Ответ

0 голосов
/ 11 октября 2018

Завершено с помощью Android GLUtils, который автоматически определяет формат.

Получил цвет Создан 1px Btimap Передан в GLUtils

Bitmap textureBitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
textureBitmap.setPixel(0,0,localColorInt);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, textureBitmap, 0);
...