【问题标题】:Generate terrain with less chaotic noise [closed]生成混沌噪声较少的地形[关闭]
【发布时间】:2014-08-26 09:29:59
【问题描述】:

我制作了一个高度图生成器,它使用梯度/值噪声来生成地形。问题是,高度图过于混乱,看起来不真实。
这就是我要说的:

这是没有颜色的地图:

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

【问题讨论】:

  • 我见过人们创建随机的线和交叉点,旨在公平地提升高度水平。但我不记得完全正确的方法。
  • 也许看看这个及其“另见”部分en.wikipedia.org/wiki/Perlin_noise
  • 你尝试过几次迭代吗?首先是针对崎岖地形、山脉和海洋盆地的高振幅和大相位(不确定这些术语是否正确),然后用第二个更精细的通道覆盖,在此之上添加更小的不规则性。
  • 你的代码到底是如何工作的?
  • 我以前用过:en.wikipedia.org/wiki/Diamond-square_algorithm 很现实的结果

标签: python pygame noise terrain heightmap


【解决方案1】:

据我所知,您的样本可能缺少八度音阶和插值。

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

也可以尝试播放/混合湍流(向高度图添加精美功能的简单方法)。 在生成高度图时,许多单纯形噪声(Ken Perlin 也是,但在更多维度上可以更好/更快地缩放)实现处理非常完整的参数集供您使用。

【讨论】:

    【解决方案2】:

    查看this article,Amit 在其中介绍了一些地图生成技术。他甚至在网上有示例代码。

    在文章中,他将 perlin 噪声作为随机化 参数 到他的地形生成器中,但没有将其用作整个生成器。结果看起来真的很好。 (我会发布一张结果的图片,但我还不知道版权问题。)

    在您从事这项工作的同时,Amit 多年来一直在撰写和策划有关游戏编程的内容。 Herehere 是他关于这个主题的更多文章。我希望这不会成为你的时间浪费,我当然在他的博客上花了很多时间。 :)

    (PS。我更喜欢单工噪声而不是 perlin 噪声。相同的发明者,更简单的实现,并且对我来说看起来更好。)

    【讨论】:

      【解决方案3】:

      在游戏中,最常见的纹理和高度图噪声生成器是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

      【讨论】:

        猜你喜欢
        • 2011-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-30
        • 2014-02-08
        • 2014-05-30
        • 1970-01-01
        相关资源
        最近更新 更多