使perlin噪音范围更小

时间:2014-10-01 00:39:31

标签: java terrain perlin-noise

我有一个perlin噪音功能,我想用它来为我的游戏选择一个地图的生物群系。问题是生物群系由两个因素决定 - 平均降水量和平均温度。所以,我想,我只是制作两个perlin噪声函数并重叠它们。

现在的问题是生物群系不包含所有可能的降水温度组合。例如,没有高降水和低温的生物群落,如图所示。

我怎样才能使用柏林噪音但从未到达生物群落未覆盖的区域?

1 个答案:

答案 0 :(得分:0)

您可以将值限制在允许的范围内(例如,温度为0°C的区域内允许的最大降水量为100 cm)。

您可以在噪声算法本身中执行此操作,而不仅仅是在整个值字段完成之后。我想它会像这样工作:

  • 首先生成温度图。
  • 当您为降雨噪声生成每个随机值时,生成一个范围内的值,该值按比例缩小到温度图允许的值范围。

实施例: 如果您将生成0 - 250 mm范围内的随机值(大约50%的最大可能降雨量,对于其中一个低频噪声层),请查看该像素的温度,看它是10°C,所以范围是随机值将缩小到0-100毫米(该温度允许的0-200毫米的50%)。

因此,即使您为每个图层滚动最大随机值,复合值也会受到温度决定的最大值的限制。

我不知道这是多么现实,现实主义对你来说有多重要。什么能够准确地防止低温区域降雨量大?我提出的解决方案可能实际上模拟了低温区域蒸发减少等因素。

编辑:

还有一个想法,最终可能与我的第一个解决方案相同:

  • 独立生成温度图和降雨图。
  • 将降雨量图乘以温度图(缩放到范围< 0,1>)。这将减少低温地区的降雨量。