我一直在使用OpenGL 1.0开发Android应用,采用了一种简单的渲染方法,每帧基本上都会调用glColor4f(...)和glDrawArrays(...),并使用FloatBuffers。随着添加更多UI元素和绘制调用数量的增加,图形性能成为一个巨大的瓶颈。
因此,我现在正在寻找最佳方法将所有这些调用组合成一个(或两个或三个)绘制调用。看起来,最干净、高效和规范的方法是使用VBO对象,该对象从OpenGL ES 2.0开始提供。然而,这需要我进行巨大的重构,将整个图形后端从ES 1.0切换到ES 2.0。我不确定这是否是一个好决定,或者是否有可以接受的方式来对1.0中的绘制调用进行分组,以适应相对简单的2D数据(正方形、圆角矩形TRIANGLE_FAN等),或者是否真的值得咬紧牙关做出切换。我还要提到,我非常依赖于平移和缩放,这在ES 1.0的固定管道中非常方便。
仔细寻找后,我惊讶地发现几乎没有人像我一样处于这种境地,讨论这种切换所涉及的权衡和复杂性。有什么想法吗?