我正在开发一个类似Minecraft的Android项目。我发现这是学习OpenGL性能的好方法。
我已经转移到顶点缓冲区对象,这给了我巨大的性能提升,但现在我看到了下方。
我认为我需要一个顶点缓冲区对象:
我是否正确地认为每次播放器添加一个立方体时我都需要将其添加到VBO的末尾,每次用户删除一个立方体时我都需要重新生成VBO?
我无法看到如何将具有属性的对象映射到VBO中的位置。
有谁知道Minecraft类型的游戏是否使用VBO的
答案 0 :(得分:1)
是的,如果你使用malloc存储空间,那么你需要创建新的VBO-s。如果你想扩展它,因为你需要更多的内存。如果你想表现得少,那么我就可以玩IBO-s,但你必须在某些时候重新安排VBO。
我不确定对象属性是什么意思,但是如果你希望它们被显示,那么我认为你需要为每种属性/ qube-type / shader提供不同的VBO-s对。并将它们分组绘制。
如果您想存储其他类型的属性,那么您应该将其存储在传递给opengl的VBO中
我不知道Minecraft使用的是什么,但我最好的建议是你在VBO-s中存放不太可能到达的立方体,以及可以在易于修改的容器中使用qubes。(我不知道是否它会有所帮助)