godot 隨機(jī)地圖5 深入解析 noise的形成原理
我這個(gè)講了可能不沒(méi)講沒(méi)區(qū)別,很多東西就是看得懂。
在noise之前是random

他就是在把多跟正選函數(shù)融合后,再取某個(gè)點(diǎn)。如果圖像足夠大,就可以看到random在圖像上面也是循環(huán)的。
所以我們才使用多層疊加,然后得到合適的效果。
我們切換到noise,使用random代替smooth_noise就會(huì)得到這樣的結(jié)果。
用marble一層來(lái)演示


這時(shí)候我們不用看smooth_noise的代碼,因?yàn)橐呀?jīng)寫(xiě)好了,直接看原理。

我們看到的,他也是網(wǎng)格,然后在中間的uv,取圍繞他的4個(gè)點(diǎn)的值得平滑。

就在這4個(gè)頂點(diǎn)里面每個(gè)點(diǎn)取平滑值
平滑公式 value = x*x*(3-2*x)


不過(guò)我們的uv無(wú)論怎么變化,使用fract就讓它留在0~1的區(qū)間內(nèi),并且取值也在0~1的區(qū)間內(nèi)。
這里在去上下的時(shí)候只用了平滑后uv.x,之后返回的時(shí)候用了uv.y,我們可以交換一下,效果也差不多。就不展示了。
所以我們的noise是規(guī)規(guī)整整的網(wǎng)格點(diǎn)平滑后的結(jié)果,voronoise是不規(guī)則頂點(diǎn)平滑后的結(jié)果,然而simple是三角網(wǎng)絡(luò)平滑的結(jié)果
我們可以把這里的平滑公式 給改了,可以制造出更加奇怪的圖形。






我們是可以看到圖像在循環(huán)的

這里會(huì)出現(xiàn)明細(xì)的分裂狀態(tài),實(shí)際上是我們的sin取值為(-1~1),而且
我們只看一層

在開(kāi)啟時(shí)間后

他會(huì)在每1秒循環(huán)一次。
稍微改一下我們直接改源碼

這里的frequency改為12。
這種循環(huán)noise并我是我的重點(diǎn),當(dāng)然我也不了解這些數(shù)學(xué),我尼瑪就是個(gè)高中畢業(yè)的,干不了這些事兒。
給我 uv和對(duì)于的value,我也整不出來(lái)。