在那裏並不存在許多容易遵循的Perlin噪聲教程,當然不是Java或2D。我沿用了this教程,但並沒有很好的解釋2D噪聲。我知道你必須生成一組數字,然後插入它們和一切。我的問題是我不知道如何執行頻率,持續性或幅度來幫助影響數字的結果。任何人都可以給我一些基本的Perlin噪聲函數或指向Java或類似語言的2D Perlin噪聲教程的鏈接嗎?謝謝!Java:2D Perlin噪聲創建
編輯:有人可以簡單地解釋一下這個過程,或者如何實現頻率,幅度和持久性來影響這一代?請:) :)
在那裏並不存在許多容易遵循的Perlin噪聲教程,當然不是Java或2D。我沿用了this教程,但並沒有很好的解釋2D噪聲。我知道你必須生成一組數字,然後插入它們和一切。我的問題是我不知道如何執行頻率,持續性或幅度來幫助影響數字的結果。任何人都可以給我一些基本的Perlin噪聲函數或指向Java或類似語言的2D Perlin噪聲教程的鏈接嗎?謝謝!Java:2D Perlin噪聲創建
編輯:有人可以簡單地解釋一下這個過程,或者如何實現頻率,幅度和持久性來影響這一代?請:) :)
振幅和頻率在柏林噪聲生成中沒有自由變量。相反,他們通過持久性進行參數化。
噪聲函數是幾個基本函數的總和。
n(x) = sum(n_i(x*f_i) * a_i, i=0..N-1)
每個函數被調用倍頻,因此由索引i
編號。值f_i
表示振幅的頻率和a_i
。正如之前提到的它們完全由索引i
本身,由持久p
參數化來確定:
f_i = 2^i
a_i = p^i
雖然每個噪聲功能n_i(x)
是歸一化頻率1
和振幅1
,整體術語n_i(x*f_i) * a_i
現在具有頻率和由上述表達式給出的幅度。
換句話說,該噪聲函數n(x)
是八度的,其中第一個具有頻率1
和振幅1
,第二個具有頻率2
和振幅p
總和,第三具有頻率4
和振幅p^2
,等等。
謝謝,這對Howard很有幫助。我現在縮小了一維Perlin噪聲,並嘗試了這一點,它似乎很好地工作。再次感謝! – MrDrProfessorTyler 2011-12-26 18:20:18
另外,當文章中提到你必須將噪音加在一起,並且造成佩林噪音時,這是否意味着噪音的平均值? – MrDrProfessorTyler 2011-12-26 18:29:41
只需添加,在我的答案中查看'n(x)'的表達式。 – Howard 2011-12-26 18:31:08
你的問題到底是什麼?在您鏈接的頁面上有(僞)代碼,顯示如何處理perlin,包括持久性。您可以直接將其翻譯成您喜歡的任何語言。 – Howard 2011-12-26 16:45:03
是的,我知道,但我有一個完全理解它的問題。我把它完全翻譯成了Java,但是我有一個問題,它完全理解數學運算的方式。我需要某種清楚的解釋過程如何工作。 – MrDrProfessorTyler 2011-12-26 17:27:02