这个问题的新手,在解决问题上没有运气,因此损失了将近3天的工作。
范围:
想要为obj分配一种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
我有红色的时候是绿色的
我做错了什么?
答案 0 :(得分:0)
最终在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);