godot 随机地图3-fastnoiselite
FastNoiseLite是github上Auburn的开源noise库。

基本c/c++、java、JS都有源码,而且OpenGL的GLSL和微软dx的HLSL也支持。
在下面有库的GUI测试版本。

简单解释下这些库和参数的区别,就不做太多代码解析了,毕竟能看到这里的也没啥人。
1、general

noise type 就4种。
第一类open simplex2 和 open simplex2s
生成noise总是有点的,他们用的交错的三角网络,可以从图片上模糊的看出来

第二类 perlin noise

可以模糊的看到是正方形的网络的。
第三类cellaru 细胞样式

第四类 value

方方正正的。
seed:可以用各种方式对uv进行偏移。
frequency:noise的大小,也就是填充进去的缩放。这里之所以用频率,是因为noise是因为这里

1600、6574、5000可以自己改的,如果 uv.x的乘数和uv.y一样会出现波形。
5000就是frequency。
有兴趣的可以把这3个数字改一改,会发现奇效。
3、fractal 分型


octaves(层数) = 5,c0+=5次
lacunarity(间隔) uv*4、8、16、32、64, 间隔为4
对值得影响1.0,0.5,0.25,0.125,0.0625 逐渐递减
gain(权重) 1.0。


这是采样的模式,如果写过就晓得,这里还有更多的操作空间。
这里是关于ridged的生成模式,而且还专门用它生成岛屿地图,生成地图可不是随随便便的,还有很深的图形学的坑。
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 的扭曲分型,效果不明显。
总结,如果要制作成熟的地图,去google noise map,有很多人提供了图文教程。