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



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

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

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

但是,如果这不是一个选项,为什么不简单地一次绑定所有精灵表呢? 如果少于 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS,则无需更改纹理绑定,只需提供某种方法让着色器知道它应该使用哪个绑定纹理即可。

最新更新