godot noise融合成地圖的探究
一、是首先要理解,隨機(jī)地圖就是一個范圍判斷,然后生成對于的東西。
在shader中,color的輸出為4個float,范圍再0~1。他和傳統(tǒng)的0~255區(qū)別不大。只是我們習(xí)慣了10進(jìn)制,在腦海中對0~255是有一個概念了。
不過這個范圍判斷依賴直覺肯定會有很多麻煩的事情出現(xiàn)的。
用0~1是有很多好處的。
在noise下,在沒有使用smooth之前,分布大概是個正太的樣子。

smoothstep

把直線,弄著這樣。
然后我們的概率分布,就會有所改變。

我們拿到這個概率圖。
如果是(v+v)/2,

如果是v*v


如果是(v-v)/2


測試后,我選擇 (v-v)/2這樣的值保留原始數(shù)據(jù),有有一種被step的感覺。
二、noise的算法
1、sample
三角形錯位網(wǎng)絡(luò)
生成的基底,會有斜線。


這個跟硬。根舍和生成一些特殊巖石地形。
2、perlin
perlin noise是方形網(wǎng)格

有直線和豎線的網(wǎng)絡(luò)。
3、value


因為使用隨機(jī)網(wǎng)格顏色,然后再smooth,這也的效果,非常容易形成長廊。
也可以有一些其他的操作

生成大量的L在地圖里面。探后再用voro生成區(qū)塊,那又是很多奇怪巖石地形。
4、voro?
關(guān)于voro。
頂點(diǎn)所在的位置很重要啊

目前我們之用了第四了,還有很多優(yōu)秀作品哦,是對他的頂點(diǎn)進(jìn)行處理的,這個。
1、像毒液的液體
2、曉不得
3、樹木
4、規(guī)律分布的網(wǎng)格
5、隨機(jī)后的
6、集中的放射性地形
6.1如果使用了曼哈頓距離法

所以voro這東東,我還是推薦自己寫。
三、對數(shù)據(jù)的處理
1、ridged


2、ping_pong

完全感覺不出兩個的區(qū)別
就像反色了一下。
這里的主要的公式也很簡單,因為0~1之間有個過度為0.5,我們之需要把0.5變?yōu)?

只需要 abs(value-0.5)*2.0就好了

holy shit,不對啊

吃癟了。
直接抄了。

這尼瑪,什么意思,先超過去




我懶得管那么多了,這里和木紋差不多。
尤其是增加了


雖然區(qū)別很大,實(shí)際上區(qū)別不大。
四、總結(jié)
1、我們在生成地形圖的時候,主要是尋找輪廓,因為整個noise都用上了smooth step,平滑的從0~1,然后每一層可以對他們進(jìn)行各種處理,然后疊加。所以我們要取0.2,會存在一條線。這條線,這與這條線一下和以上的數(shù)據(jù)如何操作,取決于你想要的比例。
2、我們在使用voro+sample noise生成礦石,這與的礦石輪廓不是圓滑的。
到了這里,想要深入研究可以自己看
blender和各種渲染引擎的procedural texture




我們必須承認(rèn),godot還早著呢,blender和其他渲染引擎是專業(yè)的。

unreal還更差得遠(yuǎn)

當(dāng)然不能拿游戲引擎和專業(yè)的比。