2014-02-09 41 views
1

我有一個無限的2D網格,並且需要爲每個網格位置隨機分配一個值。有一個有限數量的整數值。我需要彼此靠近的地點具有相似的價值觀,從而創造出價值基本相同的「地點」。我之前曾嘗試使用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)) 

然而,這創造了極爲不均衡值無論我怎麼調整的功能。有沒有更好的方法來創建像這樣的值?

回答

1

爲了獲得網格上的一致性,您需要從整數網格中採樣perlin噪聲。例如:n = perlin(x/10.0, y/10.0)

+0

我已經做了幾個值,但我發現,雖然一致,這些值是非常接近的大小;一般來說,最少的幾個可能值佔用了所有生成的網格。 – Iconmaster