在程序生成的地形中降雨+河stream创buildalgorithm

我最近被程序化地形上的东西所迷惑,并开始尝试build造世界。 我希望能够让世界变得像矮人堡垒一样,通过将各种地图连接在一起创build生物群落。

所以第一步已经完成了。 使用钻石平方algorithm,我创build了一些不错的hieghtmaps。 下一步是我想添加一些水景,让他们有点逼真地产生降雨。 我已经读到了一些不同的方法,比如从地图的高点开始,然后“下移”到最低的邻近点,在汇集到海平面的过程中汇集/侵蚀。

有没有任何文件化的algorithm,或者他们更多的袖口?

会爱任何build议/想法。

这个网站的用户Amit Patel创造了一个关于随机世代的信息的绝妙资源 ,这对你来说肯定是有用的。

此外,还有一些关于本网站程序生成的重要问题/答案。

二维网格图上的道路/河stream生成

以游戏特征为导向的程序世界一代

我怎么能在我的游戏中产生随机的湖泊和河stream?

随机地图生成

当我尝试过这种types的事情(20世纪90年代后期)时,我阅读了一些关于水stream的文章和书籍,但是我没有logging下我看过的那些东西。 我结束了自己的事情,因为我想处理侵蚀。 我想要河stream产生峡谷和洪泛平原。 我想要大坝水库充满沉积物。 我想要河stream产生像蜿蜒曲折和牛轭湖的影响。 我想要灌溉和引水的运河。 我想洪水破坏洪泛平原上的农场和房屋。

我在这个页面的地理部分保留了一些笔记(链接)。 有一个必须阅读的乔斯·斯塔姆纸。 不幸的是我从来没有组织笔记。 另外不幸的是,这个游戏是针对OS / 2的,所以我不能轻易给你一个可运行的可执行文件来玩。 而且不幸的是,我的代码太糟糕了,但是如果你想看看,请参阅源代码 (zip) 中的water.cpp 。

在我的模拟中玩过的东西(并不全是现实的):

  • 河stream附近的地区有湿润的土壤; 远离河stream的地区有干燥的土壤。 湿度影响植被。 植被减缓水stream量。
  • 在一些地方,雨会在一些地方造水。 然后它下坡。 然后它蒸发并被地面吸收。 雨开了河道。
  • 泉水一直在创造着水,但只在less数地方。 泉水保持河道畅通。 我没有模拟岩层或地下水的stream动; 我只是随机在山上放置了弹簧。
  • stream动的水有动力。 如果我没有记错的话,这对于使河stream蜿蜒而言非常重要。
  • 快速移动的水捡起沉积物; 缓慢移动的水沉积在它前面。 这划出了河谷。
  • 在最初的地图制作过程中,我加速了水stream和侵蚀; 在游戏过程中,它以正常速度运行。

总的来说,我的经验是,所有这些都很有趣 ,但是为了使它起作用,我们花了很多的启发和调整。 我从来没有达到可以说河stream创造感觉自然而且不可避免地没有调整的地步。 作为一名程序员和一名玩家来说,这是非常有趣的事情,我花了好几年时间,从未完成游戏的其余部分。 🙂

我所见过的大部分实现方式都是将“河stream图”(使用Perlin噪声或类似方法的窄带)或您提到的“雨滴”方法结合起来。

这里有几个跳跃点:

  • 虚拟地形项目在水面上的页面
  • Shamus Young对河stream世代的探索
  • Procedural Content Genereration Wiki中的资源集合