为什么opengl不用glTexImage绘制绿色?

时间:2012-12-27 20:15:03

标签: android opengl-es opengl-es-2.0

我相信我拥有制作简单绿色图画的所有组件,显然我错了。也许有人可以解释我所缺少的东西?

@Override
public synchronized void onDrawFrame(GL10 unused) {
    Bitmap b = Bitmap.createBitmap(512, 512, Bitmap.Config.RGB_565); 
    b.eraseColor(Color.GREEN);
    GLES20.glEnable(GLES20.GL_TEXTURE_2D);
    GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, b, 0);
}

1 个答案:

答案 0 :(得分:1)

glTexImage2D不会绘制任何内容。它只是将图像复制到纹理中。您仍然需要绘制一些使用所述图像进行纹理处理的几何图形(四边形左右)。

glTexImage还需要一个绑定的纹理对象才能使用。这意味着您首先必须使用glGenTextures来获取新的纹理ID,然后使用glBindTexture来绑定/创建它。

我还应该指出,如果图像保持不变,则不应在每次绘图时重新上传。

但最重要的是如果你只想画一些绿色四边形,为什么不画一个绿色的四边形呢?你不需要纹理。