我一直在寻找答案,但没有找到任何具体的关于它。2D OpenGL动画纹理(Android)
我想知道这两个例子中的哪一个更好地与速度和性能相关。提前致谢!
我在2D中制作了一个openGL ES 1.0 Android游戏。为了使角色动画我使用不同的纹理。我有两个posibilities与纹理:
第一个是具有在一个int数组每个纹理和取决于在所述框架上与改变被选择的一个:
gl.glBindTexture(GL10.GL_TEXTURE_2D, texture[actual_id]);
在另一方面,我们可以有一个所有图像的“大”纹理,并修改纹理坐标。在这种情况下,而不是:
private float textures[] = {
// Mapping coordinates for the vertices
0.0f, 1.0f, // top left (V2)
0.0f, 0.0f, // bottom left (V1)
1.0f, 1.0f, // top right (V4)
1.0f, 0.0f // bottom right (V3)
};
(这将是一个在第一种情况),这将是:
private float textures[] = {
// Mapping coordinates for the vertices
0.0f, 0.5f, // top left (V2)
0.0f, 0.0f, // bottom left (V1)
0.5f, 0.5f, // top right (V4)
0.5f, 0.0f // bottom right (V3)
};
(使用2×2箱),而这些坐标应围绕纹理移动。
我想知道哪些可能是最快的。另外,如果有第三种我最想知道的方式。
谢谢你的时间。如果我必须详细说明问题,请问我。
你好,欢迎光临。您可能想知道,像这样的'偏好'问题通常被认为是不合适的(参见[FAQ](http://stackoverflow.com/faq#dontask))。话虽如此,你可能想选择一个你最感兴趣的标准。我不相信一种方法比另一种更好(一种方法可能更快,另一种方法可能使用更少的内存),而且这种方法很容易从一台设备变为另一台。如果您可以选择一个重要标准并重新提出您的问题,只需要询问*哪种方法使用较少的内存*,则可能更合适。 – Tim 2012-07-20 21:44:19
感谢您的快速回答。我想知道哪一个比使用内存更快。我要修改这个问题,谢谢你的建议! – charlypu 2012-07-20 21:48:23