虛擬環境的建立需要大量的數據建模為重建不同場景的表面形成. 我們這個世界的分形性質,允許使用各種數學函數的自動執行這些任務. 樹, 土地, 雲, 火災等。. 構建與基於自相似性的許多不同的技術, 分形的底座複雜的家庭. 產生所謂的“柏林噪聲”的功能適用於這些情況下.
使在一維應用概念的分析, 其推廣到二維 (土地) 是立竿見影, 並提供了無初始說教的興趣.
噪音功能: “噪音功能 (NF)“
一個NF本質上是一個偽隨機數發生器具有生成相同數量的輸入值的財產,或“種子”的具體.
任何函數, 如Y = COS(x) 總是返回為“×”的給定值相同的值“和”.
如果我們用這個函數來生成幾何模型, 我們可以在以後使用相同的變量重新獲得同樣的模式. 但是,該函數不能在較沙丘或群山的輪廓用它有一個週期性的重複, 模式, 從而減少自然. 沙漠沙丘彼此相似但不相同.
一個重複的模式仍然是可信的舞台上. 一個模型可以生成一個偽隨機分佈,其中沒有重複鑑定. |
隨機函數,是不可控的,或沒有可以恢復回到以前的一些價值觀, 隨著越來越會返回不同的值.
A“柏林函數”允許混合的隨機優勢 (噪音) 一個經典的功能控制. 此外可以採取兩個給定值之間的中間值, 因此,提供連續性的這些功能. 如果我們增加表示需要規模來獲得這些中間點,以保持生成的圖像的分辨率. 如果我們做一個代表不同層次細節LOD技術, 這些方面是最重要的.
最後,要得到光滑,以免尖銳的“峰”和“谷”通常無用的曲線,並且通常不切實際.
要在不同尺度獲取圖像是必要的,以保持相同的分辨率納入新點. 該函數必須允許此操作,以確保代表的質量合理.
每個函數“Perlin雜點”生成能適應更好或更壞的創建模型所需的不同數據. 這是一個研究領域目前正在深入探索.
在 [1] 提出了使用的數字psudoaleatorio的發電機的, 基於使用的素數, 返回在範圍內的數 [-1,1] 每個整數值被供給.
函數噪聲 (32-位整數: x) X = (x<<13) ^ x的 A=15731 B=789221 C=1376312589 |
功能“噪音” |
前三個數字是素數. 您可以使用不同的值進行試驗,以產生新的曲線. 使用三個變量的 (一, B到C) 被表達的清晰度進行.
該代碼有兩條主線.
第一個“換血”的輸入值可控制的方式,其位的位移
X = (x<<13) ^ x的
以產生在該範圍內的數 [-1,1] 用其上端的值 (1) 和減去一個值 [0,2].
獲得減去值利用提到素數確定一個新的中間值進行.
x * ( x * x * 一 + 乙) + Ç
所產生的數必須是正, 所以我們應用邏輯面膜,使其第一位為零 (正)
&7FFFFFFF
如果我們把這個最後的結果是由最大整數取得零和1之間的一個值, 為它是由MaxEntero / 2 =分 230
八度
組成最終功能的“噪音”功能與其他“同類”,增加了麵包車,其頻率依次增加一倍.
的頻率為F = 1 / L的波長的倒數, 波的週期的大概念
而振幅為我們提供了大小 (我們的波高)
所有這些功能以前的倍頻, 類似於鋼琴上連續的兩個音符之間的間距相等, 所謂的“八度”.
一個函數和它的第一個八度可以撰寫一封新功能 |
偽隨機函數,並添加了第八屆 |
加入偽隨機函數和它的八度
您可以添加函數本身的諧波或做出類似的功能組合, 添加在創造許多個八度的更多樣性cornering.The逐步納入添加細節尺度. 得到的曲線,數字越大的八度較高的複雜性, 允許模擬陡峭的懸崖.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
持久性因數表示諧波的發生率或重, 上的曲線的光滑度增加一個控制點.
沿曲線持續高附加值較大的變化.
通過減少持久性的價值, 八度的影響不會產生尖銳的形式.
對於給定的頻率是用於持久性的每個值的單個振幅, 我們稱之為 “各頻率的振幅”
曼德爾布羅定義埃爾RUIDO, “噪音”, 如 “高頻低持久性”
在幾個階段中進行的計算處理.
首先我們確定噪聲的生成函數, 作為解釋:
兩點之間的中間值可以通過線性插值來獲得, 二次, 立方等。.
然後, 是 “軟化” 內插函數之後:
和該組被集成, 耦合求和函數諧波分量:
[1] 用偽代碼解釋頁面Perlin雜. 本頁面是在這項工作中提出了實施的主要參考. “HTTP://freespace.virgin.net / hugo.elias /培林Noise.htm“
一定是 連接的 發表評論.