欢迎光临散文网 会员登陆 & 注册

godot 随机地图5 深入解析 noise的形成原理

2023-05-25 15:01 作者:damedown  | 我要投稿

我这个讲了可能不没讲没区别,很多东西就是看得懂。


在noise之前是random

他就是在把多跟正选函数融合后,再取某个点。如果图像足够大,就可以看到random在图像上面也是循环的。

所以我们才使用多层叠加,然后得到合适的效果。

我们切换到noise,使用random代替smooth_noise就会得到这样的结果。

用marble一层来演示

使用random
smooth_Noise

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

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

就在这4个顶点里面每个点取平滑值


平滑公式 value = x*x*(3-2*x)

不过我们的uv无论怎么变化,使用fract就让它留在0~1的区间内,并且取值也在0~1的区间内。


这里在去上下的时候只用了平滑后uv.x,之后返回的时候用了uv.y,我们可以交换一下,效果也差不多。就不展示了。


所以我们的noise是规规整整的网格点平滑后的结果,voronoise是不规则顶点平滑后的结果,然而simple是三角网络平滑的结果


我们可以把这里的平滑公式 给改了,可以制造出更加奇怪的图形。

x*x*(3-2*x)
x*x
x*x*x
sin(x*3)
sin(x*2)
sin(x*30)


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

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

我们只看一层



在开启时间后

他会在每1秒循环一次。

稍微改一下我们直接改源码

https://www.shadertoy.com/view/Dl3Sz8

这里的frequency改为12。


这种循环noise并我是我的重点,当然我也不了解这些数学,我尼玛就是个高中毕业的,干不了这些事儿。


给我 uv和对于的value,我也整不出来。



godot 随机地图5 深入解析 noise的形成原理的评论 (共 条)

分享到微博请遵守国家法律