Android的NDK开发中 关于VBO的问题
每帧绘制的数据量大约300k,每帧数据都可能变化。我使用vbo 开了一个30k的空间,每次当数据量达到30k就调用glBufferSubData函数将数据上传给gpu 绘制,一帧绘制中 可能调用十多次glSubBufferData,vbo的状态是GL_DYNAMIC_DRAW。
vbo调用的是 \android-4\arch-arm\usr\include\GLES \gl.h
问题:对比 vbo方式和顶点数组,在pc上二者帧率差不多:
FPS
vbo 26
va 25
程序中还有其他绘制操作,所以帧率并不高。奇怪的是,在手机上但是vbo的帧率反而要低:
FPS
glDrawArrays 27-29
glDrawElements 27-29
vbo 18-20
有vbo开发经验的 兄弟,请不吝赐教。
[最优解释]
你在绘制的时候调用 glSubBufferData 当然慢了,这个应该是数据准备阶段做的事情,渲染的时候一般只改变着色器里面的 uniform 参数
[其他解释]
格式化一下 pc和手机上的统计结果:
FPS
vbo26
va25
FPS
glDrawArrays27-29
glDrawElements27-29
vbo18-20