纹理映射

时间:2011-02-28 13:45:33

标签: android opengl-es andengine texture-mapping

我正在尝试使用opengl将纹理应用于精灵,如下所示:

int[] textures=new int[1];
gl.glEnableClientState(GL10.GL_TEXTURE_2D);
gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
Bitmap bitmap=null;
try {
   bitmap=  BitmapFactory.decodeStream(contxt.getAssets().open("gfx/garf.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

GLUtils.texImage2D(GL10.GL_VERTEX_ARRAY, 0, bitmap, 0);
bitmap.recycle();

.....

我在android中使用andEngine框架并使用Sprite的onManagedDraw方法来执行此操作。

任何人都可以帮助这个方向吗?

2 个答案:

答案 0 :(得分:4)

我认为你需要texImage2D( GL10.GL_TEXTURE_2D ,0,位图,0);

答案 1 :(得分:2)

我只是猜测你的问题是纹理没有出现:)

这是错误的:

GLUtils.texImage2D(GL10.GL_VERTEX_ARRAY, 0, bitmap, 0);

应该是:

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