我正在制作 Android 应用,我需要使用 OpenGL ES 绘制一些形状。我能够呈现它们,但我对表现感到失望。我更新了代码以使用 VBO ,但我没有注意到任何改进。我想以每秒 60帧呈现(每帧 16 ms)。
我有一个测试项目,我在屏幕上渲染了几个三角形。当我渲染 1000 三角形时,每帧需要 20 ms (取决于设备)。
我希望将渲染保持在 10 ms 之下,因为我需要其余的( 6 ms )来执行其他计算(例如更新位置,检测碰撞等)
这是我渲染三角形的代码:
https://github.com/mauriciotogneri/test/blob/master/src/com/testopengl/Polygon.java#L51-66
这是迭代三角形的代码:
https://github.com/mauriciotogneri/test/blob/master/src/com/testopengl/MapRenderer.java#L117-139
(更改 NUMBER_OF_TRIANGLES 的值以显示更多三角形)
根据我的理解,方法 GLES20.glDrawArrays(...)需要花费太多时间,如果我需要每帧调用 1000 次(每个三角一个) )。
是否有其他方法可以渲染多个不占太多的多边形?
注意:
答案 0 :(得分:0)
将你的位置/颜色/法线放在一个VBO对象中并在一次调用中绘制它们。