簡體   English   中英

2d Perlin噪音。 為什么我必須取位移和梯度矢量的點積?

[英]2d Perlin noise. Why do i have to take the dotproduct of displacement and gradientvector?

考慮到這一點 ,我不明白為什么我必須考慮梯度矢量的點積和指向該點的位移。 誰能解釋我為什么要這樣做? 我實際上理解了教程,在教程中,他們只是進行了簡單的模糊處理以計算網格點的值(稱為平滑噪聲)。 在這兩種情況下,線性插值對我都很清楚。 那么誰能解釋我為什么要在第一個教程中采用位移的點積和所謂的“梯度向量”呢? 有什么作用?

好吧,我現在想通了。 第一個教程的噪聲是所謂的梯度噪聲,而第二個教程的噪聲是值噪聲。 ken的經典Perlin噪聲是梯度噪聲(質量和性能更好),而值噪聲則更容易理解。 但是在這兩種情況下,八度都加了n次(梯度噪聲不能代替此過程)。 看到:

http://en.m.wikipedia.org/wiki/Value_noise

http://en.m.wikipedia.org/wiki/Gradient_noise

漸變噪聲為長度為1的隨機向量的網格設置了種子。這些向量彼此之間的距離為1。 取位移矢量從4個最近的網格點到我想要的點的點積,以及在這4個點處播種的梯度矢量,對於這4個點中的每一個,結果將在-1和1之間。 然后可以對這些值進行插值以獲得實際的點值。

值噪聲為每個網格點實時生成隨機值,它們之間的距離為1。這些值是通過種子生成的,允許我一遍又一遍地獲得相同的值。 當我選擇要獲取的點周圍的平方根時,我會根據所傳遞的坐標實時生成隨機值(可以在第二個tut中看到此類生成器的算法),然后使用周圍的網格點對其進行模糊處理以獲得平穩的聲音。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM