我正在编写Android游戏。为了减少需要加载的纹理数量(OpenGL ES 2.0),我创建了几个大小为1024x1024的spritesheets。相同动画的一些帧在不同的spritesheets上。现在我的问题是,如果这对性能有害,因为我必须为每个动画帧绑定(OpenGL.bind())一个不同的纹理?
答案 0 :(得分:1)
是的,与不相比,更改纹理绑定会产生一些性能影响。经验测试可能最好确定多少。
如果可以切换到OpenGL ES 3,则可以使用纹理数组而不是纹理。
但是,如果这不是一个选项,为什么不立即绑定所有的精灵表呢?如果你有少于GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,那么你不需要改变纹理绑定,只需提供一些方法让着色器知道应该去哪个绑定纹理。