我有一个perlin噪音功能,我想用它来为我的游戏选择一个地图的生物群系。问题是生物群系由两个因素决定 - 平均降水量和平均温度。所以,我想,我只是制作两个perlin噪声函数并重叠它们。
现在的问题是生物群系不包含所有可能的降水温度组合。例如,没有高降水和低温的生物群落,如图所示。
我怎样才能使用柏林噪音但从未到达生物群落未覆盖的区域?
答案 0 :(得分:0)
您可以将值限制在允许的范围内(例如,温度为0°C的区域内允许的最大降水量为100 cm)。
您可以在噪声算法本身中执行此操作,而不仅仅是在整个值字段完成之后。我想它会像这样工作:
实施例: 如果您将生成0 - 250 mm范围内的随机值(大约50%的最大可能降雨量,对于其中一个低频噪声层),请查看该像素的温度,看它是10°C,所以范围是随机值将缩小到0-100毫米(该温度允许的0-200毫米的50%)。
因此,即使您为每个图层滚动最大随机值,复合值也会受到温度决定的最大值的限制。
我不知道这是多么现实,现实主义对你来说有多重要。什么能够准确地防止低温区域降雨量大?我提出的解决方案可能实际上模拟了低温区域蒸发减少等因素。
编辑:
还有一个想法,最终可能与我的第一个解决方案相同: