2013-08-29 45 views
2

我目前正在嘗試學習佩林噪音,特別是地形生成的二維噪音。過去幾天我一直在線上閱讀文章,但他們似乎並不都同意Perlin噪聲的工作原理,而那些看起來具有權威性的工作非常複雜。有關柏林噪音的問題(它是如何工作的)

所以我有一些問題,我希望有人在這裏可以幫助澄清。

  • 有些文章談到從隨機數網格(二維網格的二維噪聲)開始,這是有道理的。但是,其他文章談論用梯度向量填充網格。哪個實際用於Perlin噪音?

  • 我不知道「梯度」向量是什麼,但如果它是一個實際的向量,這意味着用兩個數字填充網格上的每個點,對嗎?它只是一種方法來獲得每個網格點的兩個隨機數,或者是否有理由將其視爲方向向量?這些文章談論的是計算矢量之間的距離,但我認爲這就是內插步驟的原因......

  • 許多關於柏林噪聲的文章都提到將多個噪聲級別與變化頻率和幅度的八度音獲得我期待的有機結果。然而,其他文章稱Perlin噪音只是一個八度音階,而將多個噪音級別合併到多個八度音階中的行爲實際上是「分數布朗噪音」。其實是正確的?佩林的聲音本身就是一種白噪聲,而不是每個人都用它的混合噪音?有些文章用一組初始的隨機值填充網格,有些文章只是編寫它們的噪聲函數,這樣它就不是完全隨機的,而是爲給定的輸入吐出相同的值。這是有道理的,所以結果(特別是在2D中)看起來並不混亂。但是當你開始合併多個八度音(FBN)時呢?每個八度音程是否需要來自同一組值?或者你可以爲每個八度單獨生成一個網格(或生成器函數)嗎?我想避免重複(看到相同的模式重複生成的圖像)​​,但我不知道它背後的邏輯是什麼。

  • 只要你開始使用隨機值(或梯度向量......)的網格,該網格的大小是否與你正在創建的圖像的最終大小有關?或者純粹是頻率的函數?當你增加每個倍頻程的採樣分辨率時,你使用的是大一些還是大一些的網格,或者只是以較高的分辨率重新採樣相同的初始網格?

任何澄清將是非常有益的。謝謝。

回答

4

我不知道一個「梯度」載體是什麼,但如果它是一個真正的 載體,這意味着填補網格上的每個點有兩個數字, 吧?它只是一種方法來獲得每個網格點的兩個隨機數,或者 是否有理由將其視爲方向向量?這些文章 說說計算向量之間的距離,但我認爲 這是什麼插值步驟是爲

在每個座標,只有一個單一的數字,但是與網格點的實際值內。因此,(整數*)網格點之間有一個漸變。這可以在這裏看到肯Perlins original source。 1,2或3個浮標(1D,2D或3D空間中的座標)的輸入返回一個浮標。

*請注意,輸入座標可以縮放,以使整數網格點不在整數輸入座標。

布林上的許多文章噪音談論 噪音的多層次組合成八度變化的頻率和幅度,讓我在找 好的有機結果。然而,其他文章說 佩林噪音只是一個單一的八度,並且將多個噪音級別合併到多個八度音階中的行爲實際上是「小數 布朗噪音」。其實是正確的?佩林噪音本身 只是一種白色噪音的形式,而不是每個人使用 它的組合噪音?

柏林噪音在技術上是單個八度,但是不是那麼有用。因此,人們通常會結合多個八度來創建分形噪聲(其他基本噪聲函數可以用於創建分形噪聲)。通常人們會根據佩林噪聲佩林噪聲調用分形噪聲,但這是錯誤的,但常見的是,您必須爲此留有餘地。

有些文章填寫一組初始隨機值 的電網的工作,和一些文章只是寫他們的噪音功能,所以 它不完全是隨機的,但吐出來的是相同的值了 給出了輸入。這是有道理的,所以結果(特別是在2D中) 看起來並不混亂。但是當你開始組合多個 八度音(FBN)時呢?每個八度音程是否需要來自同一組 值?或者你能爲每個八度單獨生成一個網格(或發生器功能) ?我想避免重複(看到相同的模式 重複生成的圖像)​​,但我不知道它背後的邏輯 是什麼。

對於相同的輸入(座標&種子),佩林噪聲函數應該總是吐出相同的輸出。無論您是使用此功能預先填充網格,還是僅僅根據需要獲取值,完全取決於您。每個八度應該有不同的種子。這是一個定義的柏林噪聲的特性:

  • 明顯的隨機性,它應該看起來是隨機的,以人眼*
  • 可再現的,具有相同的輸入這意味着它會一直給
    相同的輸出*
  • 值之間的平滑過渡,這意味着沒有鋒利的邊緣*

* REF http://www.angelcode.com/dev/perlin/perlin.html

就隨機數值(或梯度向量...)的網格而言,您開始使用 ,該網格的大小是否與您正在創建的圖像的最終大小 有關?或者純粹是頻率的函數?當你提高每個倍頻程的採樣分辨率時,你使用的是更大或更大的網格,或者只是以更高的分辨率重新採樣相同的原始網格 ?

輸入的座標(以及您設置函數的頻率等)應該決定噪聲的屬性。假設輸入座標的範圍保持不變,網格的大小應該隻影響你看到噪聲的分辨率。

不同的八度噪聲應該有不同的種子,但它們也有不同的尺度;你不只是以更好的分辨率對不同的八度音進行同樣的網格重採樣,你正在調整你的座標。