馒头 分型布朗运动 fbm from scrachapixel
一、Turbulence

小于一定数后翻转过来

本来 sNoise的取值范围再0~1之间,我处理为(sNoise-0.5)*2.0 值域就在-1.0~1.0之间。
再去绝对值abs((sNoise-0.5)*2.0),也就是每一层小于0.5都会翻转。
这里新增了K,因为图层乘不能取到1.0,也就是所有加成的总值。
这样取值绝对没有scratchapixel读取每一个点的最大值,然后用它来map的效果更好。所以K值也需要设计成动态的,才能更好的展示图片。
https://www.shadertoy.com/view/flcyDM
二、Wood Texture

fract(sNoise*10.0)即可

https://www.shadertoy.com/view/NtccWM
三、Marble Texture
大理石纹
得到的sNoise和uv.x进行后期处理

再scratch pixel中 i和j取值再0~512,但是我们的uv再0~1之间,sNoise的值K也在0~1之间,两个相加再0~2之间,之后20是他们的周期。
也就得到sin(uv.x+v)*20
∵(sin(uv.x+v)*20)取值在-1~1之间,我们要把它的取值弄到0~1之间
∴(sin(uv.x+v)*20)/2 + 0.5即刻
scratch中使用的((-1~1)+1)/2,我使用的是(-1~1)/2+1;
总结:
这本身是texture synthesis contains(纹理生成合成,我瞎J2翻译的)的内容,有兴趣的可以继续深入。现在很多软件已经有了,直接去他们的官网就能看到现成的结果,再倒回来找代码就好了。
参考https://www.manula.com/manuals/fxhome/ignite-pro/5/en/topic/fractal-noise
参考https://docs.chaos.com/display/VRAY4MODO/V-Ray+Splat+Texture
地图生成的总结:
再shadertoy中,只要最后加权在0~1之间就可以了,至于个人的地图,map到128,256,看个人的设计。
随便用,馒头超好吃。