2012-05-07 65 views
2

我試圖讓我單純的噪音(有更好的複雜性基本上Perlin雜點)工作,給我這樣一件好事:單純的噪音似乎只是給隨機結果

Perlin Noise

然而,所有我得到的是什麼,似乎只是隨機:

Ant war

我使用的是從here單純的代碼和我使用它是這樣的:

def generate(self): 
    columns = [] 
    for x in range(0, self.width): 
     rows = [] 
     for y in range(0, self.height): 
      val = simplex.scaled_raw_noise_2d(0, 254, x, y) 
      rows.append(val) 
     columns.append(rows) 
    return columns 

相當簡單但似乎我失去了一些東西。不知道,雖然

回答

0

我猜你應該簡單地編寫代碼爲

def generate(self): 
    return simplex.scaled_raw_noise_2d(0, 254, range(0, self.width), 
             range(0, self.width)) 
0

這是種古老的問題,但這絕不能置之不理!對於遊客來說,當然,即使你已經知道你是自己的。

我對python沒有太多經驗,但在我看來,問題是頻率太高,1.0是確切的。或者換句話說,噪聲被縮小得太遠而導致噪聲被混疊。

要「放大」頻率需要降低。這看起來像這樣,假設你的圖書館沒有另一種方法來做到這一點。

def generate(self): 
    columns = [] 
    frequency = 1/10 # zoom in 10 times 
    for x in range(0, self.width): 
     rows = [] 
     for y in range(0, self.height): 
      val = simplex.scaled_raw_noise_2d(0, 254, x * frequency, y * frequency) 
      rows.append(val) 
     columns.append(rows) 
    return columns 

只是爲了說這的緣故,這是八度如何將多個噪聲(浮腫雲找東西)的作品,它操縱噪聲的頻率超過了一些八度,或(二的冪有時錯誤稱爲八音度變量的權力)然後將它們加在一起並歸一化,或者縮放到適當的範圍。

+0

阿哈,有趣。我實際上不記得我需要這個,但我會試試這個。 – dutt