我目前将世界的体积数据存储为一组布尔值。然后我检查每个空块,如果它有非空的邻居,则会绘制面。这可以防止我使用opengl向显卡发送一堆面孔。
我现在正在插入和删除块,但我不确定如何快速执行此操作。更改体积数据非常简单,但每次有人插入或删除块时,我都不想重新计算体积数据中的所有顶点。我想到只是将块添加到现有顶点数据末尾的顶点缓冲区,但是我没有很好的方法来销毁它,因为我无法在卷和顶点缓冲区数据之间进行关联。 / p>
感谢任何帮助。
答案 0 :(得分:1)
Octree可能会帮助您重新计算刚更改的块。
答案 1 :(得分:1)
我想你可能想要添加“algorithm”标签。我认为真正的Minecraft工作的方式是它存储16x16x16的块,并且每次更新一个小块时,它只是重新更新该较大块的顶点信息。
这是我的理解,我可能是非常错的。我相信你可以通过互联网和我的论坛了解更多相关信息。那里有很多我的飞船算法。