我有一个无限的2D网格,我需要为每个网格位置随机分配一个值。存在有限数量的整数值。我需要彼此靠近的位置具有相似的值,创建具有大致相等值的位置的“globs”。我之前曾尝试使用Perlin噪声算法,但给出的值不均匀分布,导致某些可能的值比其他值更常见。
目前,我的算法看起来有点像这样:
n = perlin(x/scale,y/scale) (scale is for coherence)
n = abs(n) / amplitude of Perlin function (as to make it between 0 and 1)
return floor(n*(max value))
然而,无论我如何调整功能,这都会产生非常不均匀的值。是否有更好的方法来创建这样的值?
答案 0 :(得分:1)
要在网格上获得一致性,您需要从整数网格中采样perlin噪声。例如:n = perlin(x/10.0, y/10.0)
。