Perlin Noise——柏林噪聲


1.簡介

  柏林噪聲最常用且最著名的噪聲,名字源於他的創始人Ken Perlin。

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

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

2.原理

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

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

  

  2.2輸入一個點坐標(二維的話就是二維坐標,三維就是三維坐標,n維的就是n維坐標),我們找到和它相鄰的那些晶格頂點(二維下有4個,三維下有8個,n維下有 2ⁿ 個),計算該點到各個晶格頂點的距離向量,再分別與頂點上的梯度向量做點乘,得到2ⁿ個點乘結果

  

 

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

  

  下圖通過顏色差異顯示了2d柏林噪聲生成的個像素點的值:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM