0

我是 OpenGL 世界的新手,我对性能和技术有疑问:

我已阅读有关性能的后续帖子,

似乎你多次使用相同的纹理会带来更好的性能。

知道了。

我怎么能在openGL中做到这一点?

[选项1]

使用 Sprite 表让我们说 3x3 像:

在此处输入图像描述

在这种情况下,我需要切断或移动它并一个接一个地显示,canvas.drawBitmap我可以使用Rect

public void update() {  
    currentFrame = ++currentFrame % 3;
}

...

int srcX = currentFrame * width;

Rect  src = new Rect(srcX, 0, srcX+width, height);
Rect  dst = new Rect(x, y, x+width, y+height);
canvas.drawBitmap(b, src, dst, null);
..

[选项 2]

使用 9 张图片并添加所有图片,例如:

for(int loop = 0; loop < 9; loop++){

  gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[loop]);
   ....
}

第二个选项有效,但我需要第一个。

请帮忙,

谢谢,

4

1 回答 1

1

您可以通过更新顶点的纹理坐标来做到这一点,这有效地指定了您正在绘制的 spritesheet 的区域。我对您上一个问题的回答基本上已经涵盖了。

于 2013-07-17T03:51:45.190 回答