Perlin Noise详细程度。如何放大景观?

时间:2010-07-18 00:51:24

标签: landscape procedural-generation perlin-noise

我编写了自己的Perlin Noise实现,效果很好。我可以通过改变频率来“缩放”进出,但随着我放大噪音变得更加平滑和顺畅。

假设我有一个展示大陆的景观。我想放大到一个城市大小的区域(或更近),但仍然有细节。我想我需要在更接近的细节上重新生成景观,但我不确定是否有任何实现可以帮助解决这个问题?

缩小了,我看到了大陆和海洋,但我希望在较小的区域内有大片区域。

以下是我遇到的问题(大陆级别)的示例:

alt text http://www.blind-games.com/highlevelnoise.jpg

放大:

alt text http://www.blind-games.com/closeinnoise.jpg

在放大地图上的某个区域时,如何才能获得丰富的细节?涉及哪些技术的例子?

2 个答案:

答案 0 :(得分:5)

您需要在连续更高的频率下使用噪声来生成,以避免平滑。请尝试http://freespace.virgin.net/hugo.elias/models/m_perlin.htm以更清楚地解释如何操纵噪音频率。 Octaves自然地与细节级别(LOD)实现相结合,只要您支持飞行生成,意味着您只需在靠近它时生成更多细节。请注意,在飞行的地形生成中存在缺点,例如复杂化河流和道路等特征的生成,因此您可能最终将地形预生成到固定的最低细节水平(例如64 km网格方块) ),然后在飞行中生成更详细的功能。

我还建议查看具有较低计算开销的Simplex噪声(有关详细信息,请参阅https://en.wikipedia.org/wiki/Simplex_noise)。

答案 1 :(得分:3)

假设您正在静态生成地图文件而不是动态生成我认为您最简单的解决方案是以您需要的最高分辨率生成整个地图。实际上,您将缩小并返回到该级别的粒度。它的计算成本更高,并且会产生更大的地图文件。根据您对查看器的实现,您可以使用单个映射文件,也可以为较大的视图构建一些解析后的文件。