Unreal 2D案例 地图生成 伪代码(by shadertoy)
有了理论基础后,就可以很轻松用shadertoy坐测试了。
一、随机数

如果uv.x和uv.y的乘数不够大,太接近,就会看到重复性。

二、noise
有句老话叫:远看巴适得板,近看麻子点点。
我们取网格的四个点,中间的值进行平滑。

因为 fragcoord / iresolution得到的值为0~1,所以uv*1.0 = 0.0~1.0


仔细看noise部分
decimal_fraction:小数部分
ID:整数部分
bl 所在ID的 bottom left
br 所在ID 的 bottom right
tl 所在ID的 top left
tr 所在ID的 top right
然后用mix,平滑他们的值,
b和t用小数部分的x坐标,再在y的部分平滑。
当然我们可以把他们的四个顶点的偏移修改,就会得到一些奇奇怪怪但是有规律的画面
比如bl偏移不是(0,0),改成(1,0);

三、平滑的noise
只需要添加一行
df = df*df*(3.-2.*df);
因为df是0~1,所以 df越小,df*df越小,但是 (3-2*df)越大,就像把他们会得到一个平滑的曲线.

四、让noise更加的随机
多个图层叠加就可以了

如下

五、装逼
给偏移的时候添加时间

动画参考下面链接:
https://www.bilibili.com/video/bv1cU4y1e7wY?vd_source=a7e6223853bf30207cbe0820f61dfce9
总结:
简单一句话不能概况,又不能不写,单独开张。