生成具有较少混乱噪声的地形

时间:2014-07-05 08:28:05

标签: python pygame noise terrain heightmap

我制作了一个高度图生成器,它使用渐变/值噪声来生成地形。问题是,高度图太乱了,看起来不太现实 这就是我所说的:

enter image description here

这里是没有颜色的地图:
enter image description here

我使用了一个257x257的网格块和17x17的渐变。 因为它是可见的,有太多的岛屿,以及在海洋中间有一些随机的小海滩岛屿 此外,还有很多锋利的边缘,尤其是山地(深灰色) 我想要的是一个更平滑,更少混乱的地形,如一个大岛等等。我该怎么做?

3 个答案:

答案 0 :(得分:1)

在游戏中,最常见的纹理和高度图噪声生成器是Perlin Noise。 我不知道你的回答是你真的想要创建噪音发生器或在你的应用程序中使用它。 如果您打算创建自己的Perlin噪音生成器,this would be a good starting point。 但是,我建议使用通过pip使用的噪音(https://pypi.python.org/pypi/noise/)库:

pip install noise

然后,您可以使用noise.snoise2(x,y,a,b,c)功能并使用不同的参数。

如果您想了解有关地形生成的更多信息,我建议您阅读本文:http://simblob.blogspot.ch/2010/01/simple-map-generation.html

答案 1 :(得分:1)

看看this article Amit介绍了一些地图生成技术。他甚至在线提供示例代码。

在文章中,他将perlin噪声作为随机化参数传递给他的地形生成器,但并未将其用作整个生成器。结果看起来非常好。 (我发布了结果图片,但我还不知道版权问题。)

当你在这里时,阿米特已经多年来一直在编写和策划游戏编程。 Herehere是关于此主题的更多文章。我希望这不会成为你的时间问题,我在他的博客上肯定花了很多时间。 :)

(PS。我更喜欢单纯的噪音而不是perlin噪音。同样的发明者,更简单的实现,看起来对我来说更好。)

答案 2 :(得分:0)

从我看到的情况来看,你的样本可能缺少八度音程和插值。

根据您使用的实现,您可以使用八度数,频率,持久性/空隙度,各种插值技术等...

尝试播放/混合湍流(简单的方法为您的高度图添加花哨的功能)。 在生成高度图时,许多单纯形噪声(Ken Perlin也是如此,但在更多维度上更好/更快地扩展)实现处理了相当完整的参数集。