沙盘游戏通常在产生新的地形时做什么?

我正在努力做一个“我的世界”。 在我的游戏中,当玩家移动到边界时,会产生新的块。

我所做的是在我的主线程中创建新的块,并生成一个新的VBO来存储它们。 但是我发现效率很低,你可以明显感觉到FPS在下降。

这些types的游戏通常在产生新的地形时做什么? 他们使用multithreading或一些特定的高效algorithm或计算着色器(我仍然不太了解OpenGL)? 我曾经试图在另一个线程中产生我的新地形。 但是我发现我不能使用GL操作在另一个线程中生成VBO。 我正在考虑在我的主线程中预先生成一些VBO。 这是正确的方式吗?

我想知道大多数人在这种情况下做什么。

信不信由你,Minecraft实际上使用显示列表立即模式来渲染块。 他们使用噪声algorithm生成块,然后使用贪心网格来组合邻居体素面,最后将其全部放入显示列表中,从而可以用一个绘制调用画出一个块。