Android OpenGL:为一个动画精灵使用多个纹理

时间:2015-01-23 23:41:51

标签: android opengl-es opengl-es-2.0

我正在编写Android游戏。为了减少需要加载的纹理数量(OpenGL ES 2.0),我创建了几个大小为1024x1024的spritesheets。相同动画的一些帧在不同的spritesheets上。现在我的问题是,如果这对性能有害,因为我必须为每个动画帧绑定(OpenGL.bind())一个不同的纹理?

1 个答案:

答案 0 :(得分:1)

是的,与相比,更改纹理绑定会产生一些性能影响。经验测试可能最好确定多少。

如果可以切换到OpenGL ES 3,则可以使用纹理数组而不是纹理。

但是,如果这不是一个选项,为什么不立即绑定所有的精灵表呢?如果你有少于GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,那么你不需要改变纹理绑定,只需提供一些方法让着色器知道应该去哪个绑定纹理。