我一直在寻找答案,但没有找到任何具体的答案。
我想知道这两个示例中哪一个与速度和性能更相关。提前致谢!
我正在制作一个 2D 的 openGL ES 1.0 Android 游戏。对于动画角色,我使用不同的纹理。我对纹理有两种可能性:
第一个是将每个纹理放在一个 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)
};
(使用 2x2 框)并且这些坐标应该在纹理周围移动。
我想知道哪个可能是最快的。另外,如果有第三个最好的方法,我很想知道它。
谢谢你的时间。如果我必须详细说明问题,请问我。