OpenGL ES:使用纹理图集绘图

时间:2011-09-18 02:04:48

标签: java android opengl-es

我正在尝试使用使用平铺地图的OpenGL ES开发Android 2D游戏,我听说出于性能原因,最好将图块存储在纹理图集(一个带有多个图块的大位图)中。

有没有人有一些示例代码演示如何从Android OpenGL ES中的纹理图集中绘制图块?

onDrawFrame(GL10 gl) {
    ...
}

1 个答案:

答案 0 :(得分:1)

好吧,我想出了怎么做。

onDrawFrame(GL10 gl) {
    ...

    int[] crop = new int[4];
    crop[0] = tileWidth * tileIndex;  // tileIndex represents the nth tile in the texture atlas
    crop[1] = tileHeight;
    crop[2] = tileWidth;
    crop[3] = -tileHeight;

    // specify the source rectangle 
    ((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D, GL11Ext.GL_TEXTURE_CROP_RECT_OES, crop, 0);

    // draw the texture
    ((GL11Ext)gl).glDrawTexiOES(x, y, 0, tileWidth, tileHeight);

    ...
}