在gamedev.SE我們發現flash implementation of Perlin-noise似乎偏離了其他實現。Flash中的Perlin噪聲如何實現?
我沒有在網上找到任何實現細節,但我想知道是否有人可以告訴哪種算法被用於閃存中的珀林噪聲。
使用bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true);
產生這樣的圖像,其中僅numOctaves
參數已經改變(1
,2
,4
從左至右):
但是培林噪聲的其他實現方式是另一番光景。例如從Wikipedia article about Perlin-noise圖像:
而且this Actionscript Implementation of Perlin-noise產生完全不同的結果,因爲你可以在下面的圖片看到(倍頻1
,2
和4
從左至右):
我最感興趣的是隻有一個八度音的外觀。在閃存實現中,您可以清楚地看到,噪聲正在形成像分離的斑點之類的東西。
重要:閃存中產生的噪聲使用false
作爲fractalNoise
參數。如果fractalNoise
設置爲true
,則結果實際上與來自維基百科和其他實現的結果非常相似。
的參數的說明的內容如下:
一個布爾值。如果該值爲真,則該方法產生分形噪聲;否則,它會產生湍流。具有湍流的圖像在漸變中具有可見的不連續性,可以使其更接近火焰和海浪等更加銳利的視覺效果。
正如我們所看到的,他們說動盪來描述產生噪聲的方法。所以我想這個問題是:閃存產生的輸出仍然是Perlin噪聲嗎?或者還有那種噪音的另一個名稱?最重要的是:在哪裏可以找到一個實現來製造這樣的噪音?
對不起,但那不是。我甚至用你的鏈接的代碼來生成我不感興趣的噪聲圖像。Flash的實現沒有什麼不同,因爲它是基於整數的(不是),如果你最終輸出圖像,你會有整數,這是沒有辦法的。閃光燈實施可讓您在「湍流」和「常規」噪音之間進行選擇。我感興趣的是**湍流**算法。如果你搜索谷歌圖片「湍流噪音」和「珀林噪音」,你會看到不同之處。 – bummzack