我试图弄清楚OpenGL中不同技术的优缺点。我正在阅读的教程表明在渲染大量VBO时性能受到打击,而且我推断一种方法可能是在一个VBO中存储多个对象。
关于如何/为何组织和呈现数据,是否有任何良好的经验法则?对于一个现代的视频游戏,例如“现代战争”,如果我正在看一个有天空背景的场景,几个静态建筑物,大量碎片和10个NPC,你认为他们创造了多少个VBO,你认为他们正在制作多少次glDrawArrays()调用?
答案 0 :(得分:3)
画出电话不是最贵的东西;我相信每帧有100~1000次绘制调用很常见。
性能的一个重要方面是减少状态变化。 IIRC程序变更>纹理变化>缓冲变化。对绘制调用进行排序,以尽可能少地切换内容。
使用一个大的VBO而不是几个较小的VBO可能对性能有益,但可能不是我尝试的第一件事。