我目前正在为游戏编写程序性地形生成器。为此,我将我的世界划分为相同大小的块,并在玩家漫步时逐一生成它们。到目前为止,没有什么特别的。
现在,我特别不希望世界变得持久,即如果一个块被卸载(可能是因为玩家移动太远)并且稍后再次加载,它应该与以前不一样。
根据我的理解,将3D Simplex Noise视为Marching Cubes的密度函数输入的隐式方法不适合我的问题。那是因为我需要重新设置生成器以获取空间中相同点的不同返回值,从而导致沿着块边界的不连续。
我也研究过Midpoint Displacement / Diamond-Square。通过使用来自相邻块的边界的值为每个块的高度图播种并随机化附近没有任何其他块的块角,我能够生成展示所需行为的可平铺地形。不过,结果看起来相当沉闷。具体地,由于该方法依赖于高度图,因此它缺少悬垂等。此外,即使角落随机化,地形特征往往局限于小区域,即没有多块山丘或类似的地标。
现在我想知道是否还有其他方法,我还没有听说过/想过。任何帮助都非常感谢! :)
干杯!
答案 0 :(得分:1)
发布过程!
执行高度图后,通过添加功能运行。
这就是我的世界如何通过它来获得各种洞穴和悬崖悬崖。