godot 隨機地圖3-fastnoiselite
FastNoiseLite是github上Auburn的開源noise庫。

基本c/c++、java、JS都有源碼,而且OpenGL的GLSL和微軟dx的HLSL也支持。
在下面有庫的GUI測試版本。

簡單解釋下這些庫和參數(shù)的區(qū)別,就不做太多代碼解析了,畢竟能看到這里的也沒啥人。
1、general

????noise type 就4種。
????????第一類open simplex2 和 open simplex2s
????????生成noise總是有點的,他們用的交錯的三角網(wǎng)絡(luò),可以從圖片上模糊的看出來
????????

????????第二類 perlin noise

????????????可以模糊的看到是正方形的網(wǎng)絡(luò)的。
????????????
????????????第三類cellaru 細胞樣式

????????????第四類 value

????????????方方正正的。
????????????seed:可以用各種方式對uv進行偏移。
????????????frequency:noise的大小,也就是填充進去的縮放。這里之所以用頻率,是因為noise是因為這里

????1600、6574、5000可以自己改的,如果 uv.x的乘數(shù)和uv.y一樣會出現(xiàn)波形。
????5000就是frequency。
????有興趣的可以把這3個數(shù)字改一改,會發(fā)現(xiàn)奇效。
3、fractal 分型


octaves(層數(shù)) = 5,c0+=5次
lacunarity(間隔) uv*4、8、16、32、64, 間隔為4
對值得影響1.0,0.5,0.25,0.125,0.0625 逐漸遞減
gain(權(quán)重) 1.0。

????

這是采樣的模式,如果寫過就曉得,這里還有更多的操作空間。
這里是關(guān)于ridged的生成模式,而且還專門用它生成島嶼地圖,生成地圖可不是隨隨便便的,還有很深的圖形學(xué)的坑。
https://noiseposti.ng/posts/2022-01-16-The-Perlin-Problem-Moving-Past-Square-Noise.html
4、cellular的界面,在general中選擇cellular就可以使用的

????distance function 也是集中生成模式。
5、domain warp

扭曲,domain warp fractal 的扭曲分型,效果不明顯。
總結(jié),如果要制作成熟的地圖,去google noise map,有很多人提供了圖文教程。