我目前正在为学校项目开发我的第一个3D游戏,游戏世界完全受Minecraft的启发(世界完全由方块组成)。我现在正在尝试通过实现顶点缓冲对象来改善性能,但是遇到了困难。我已经实现了以下方法:视锥体剔除、只绘制暴露的面和距离剔除,但我有以下疑问:
我目前在我的世界里大约有2^24个方块,分成1024个16*16*64方块的块,现在我正在使用即时模式渲染,它可以很好地与视锥体剔除配合使用,如果我为每个块实现一个VBO,那么我是否需要每次移动相机时更新该VBO(以更新视锥体)?这会影响性能吗?
我可以动态更改每个VBO的大小吗?还是必须使每个VBO具有可能最大的大小(块被完全填充)?
我是否需要将每个访问过的块保留在内存中,还是可以高效地删除该VBO并在需要时重新创建它。