godot 随机地图5 深入解析 noise的形成原理
我这个讲了可能不没讲没区别,很多东西就是看得懂。
在noise之前是random

他就是在把多跟正选函数融合后,再取某个点。如果图像足够大,就可以看到random在图像上面也是循环的。
所以我们才使用多层叠加,然后得到合适的效果。
我们切换到noise,使用random代替smooth_noise就会得到这样的结果。
用marble一层来演示


这时候我们不用看smooth_noise的代码,因为已经写好了,直接看原理。

我们看到的,他也是网格,然后在中间的uv,取围绕他的4个点的值得平滑。

就在这4个顶点里面每个点取平滑值
平滑公式 value = x*x*(3-2*x)


不过我们的uv无论怎么变化,使用fract就让它留在0~1的区间内,并且取值也在0~1的区间内。
这里在去上下的时候只用了平滑后uv.x,之后返回的时候用了uv.y,我们可以交换一下,效果也差不多。就不展示了。
所以我们的noise是规规整整的网格点平滑后的结果,voronoise是不规则顶点平滑后的结果,然而simple是三角网络平滑的结果
我们可以把这里的平滑公式 给改了,可以制造出更加奇怪的图形。






我们是可以看到图像在循环的

这里会出现明细的分裂状态,实际上是我们的sin取值为(-1~1),而且
我们只看一层

在开启时间后

他会在每1秒循环一次。
稍微改一下我们直接改源码

这里的frequency改为12。
这种循环noise并我是我的重点,当然我也不了解这些数学,我尼玛就是个高中毕业的,干不了这些事儿。
给我 uv和对于的value,我也整不出来。