很长一段时间以来,我一直在使用 OpenGL 1.0 开发一个 Android 应用程序,使用一种幼稚的渲染方法,基本上每帧都使用 FloatBuffers 调用 glColor4f(...) 和 glDrawArrays(...) 。随着我添加更多 UI 元素并且绘制调用的数量增加,我遇到了图形成为巨大瓶颈的地步。
所以我现在正在寻找将所有这些调用分组为一个(或两个或三个)绘制调用的最佳方法。看起来最干净、最有效和最规范的方法是使用 VBO 对象,可从 OpenGL ES 2.0 开始使用。但是,这需要我进行巨大的重构才能将我的整个图形后端从 ES 1.0 切换到 ES 2.0。我不确定这是否是一个好的决定,或者是否有可以接受的方法在 1.0 中对我的绘图调用进行分组,这对于相对简单的 2D 数据(正方形、圆角矩形 TRIANGLE_FAN 等)可以正常工作,或者是否真的可能值得硬着头皮做出改变。我还可能会提到,我非常依赖 ES 1.0 的固定管道非常方便的转换和缩放。
环顾四周,我惊讶地发现几乎没有人在我的位置上谈论这种转换的权衡和复杂性。任何想法?