Perlin Noise 柏林雜訊

2022-06-25 18:24:14 字數 845 閱讀 3947

1.簡介

柏林雜訊最常用且最著名的雜訊,名字源於他的創始人ken perlin。

柏林雜訊與值雜訊相似,定義若干個頂點且每個頂點含有乙個隨機梯度向量,這些定點會根據自己的梯度向量對周圍座標產生是能影響,沿著頂點的梯度方向越上公升則勢能越高。

當需要求出某個座標的輸出值時,需要將該座標附近的各個頂點所造成的勢能進行疊加,從而得到乙個總勢能並輸出。

2.原理

與值雜訊一樣,它也是基於晶格的雜訊,也需要三個步驟:

2.1首先定義乙個晶格結構,每個晶格頂點有乙個隨機的梯度向量。對於二維的柏林雜訊來說,晶格結構就是乙個平面網格,對於三維來說就是乙個立體網格。

2.2輸入乙個點座標(二維的話就是二維座標,三維就是三維座標,n維的就是n維座標),我們找到和它相鄰的那些晶格頂點(二維下有4個,三維下有8個,n維下有 2ⁿ2

n'>個),計算該點到各個晶格頂點的距離向量,再分別與頂點上的梯度向量做點乘,得到2ⁿ2

n'>個點乘結果2n

2.3使用緩和曲線計算它們的權重和

下圖通過顏色差異顯示了2d柏林雜訊生成的個畫素點的值:

matlab練習程式(柏林雜訊)

關於雜訊生成,我們可以使用rand 256 這樣的函式生成256 256大小的隨機雜訊,這樣的雜訊我們稱為白雜訊。不過白雜訊過於隨機,有時候並不能反映真實的雜訊,比如山丘,紋理等不那麼 隨機 的起伏。因此有人開發了柏林雜訊,該雜訊在圖形學中的地形,雲彩或火焰生成等方法中經常使用。下面介紹下演算法過程...

《柏林的女人》

日記 柏林的女人 作者曾遭德國女性炮轟 蓋爾芬德描述了這名精神受到極大創傷的女孩,如何不顧一切地試圖避免再次遭遇集體 類似的事例在另一本日記中也有體現,這本日記的作者是一名德國女記者,姓名不詳,當時她30歲。她的日記名為 柏林的女人 a woman in berlin 後來成為一本暢銷書,儘管幾十年...

關於雲紋理和Perlin Noise

前幾天看到一本 directx特效開發 的書,翻了幾頁發現了關於一些perlin noise和雲紋理的生成。自己做了一下,搞到現在終於弄出個比較像perlin noise的噪音圖。perlin noise主要目標是生成乙個比較平滑的隨機數,如果是紋理圖,那麼u,v方向的各個紋素應該較為平滑,不能太過...