饅頭 分型布朗運(yùn)動 fbm from scrachapixel
一、Turbulence

小于一定數(shù)后翻轉(zhuǎn)過來

本來 sNoise的取值范圍再0~1之間,我處理為(sNoise-0.5)*2.0 值域就在-1.0~1.0之間。
再去絕對值abs((sNoise-0.5)*2.0),也就是每一層小于0.5都會翻轉(zhuǎn)。
這里新增了K,因?yàn)閳D層乘不能取到1.0,也就是所有加成的總值。
這樣取值絕對沒有scratchapixel讀取每一個點(diǎn)的最大值,然后用它來map的效果更好。所以K值也需要設(shè)計(jì)成動態(tài)的,才能更好的展示圖片。
https://www.shadertoy.com/view/flcyDM
二、Wood Texture

fract(sNoise*10.0)即可

https://www.shadertoy.com/view/NtccWM
三、Marble Texture
大理石紋
得到的sNoise和uv.x進(jìn)行后期處理

再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;
總結(jié):
這本身是texture synthesis contains(紋理生成合成,我瞎J2翻譯的)的內(nèi)容,有興趣的可以繼續(xù)深入?,F(xiàn)在很多軟件已經(jīng)有了,直接去他們的官網(wǎng)就能看到現(xiàn)成的結(jié)果,再倒回來找代碼就好了。
參考https://www.manula.com/manuals/fxhome/ignite-pro/5/en/topic/fractal-noise
參考https://docs.chaos.com/display/VRAY4MODO/V-Ray+Splat+Texture
地圖生成的總結(jié):
再shadertoy中,只要最后加權(quán)在0~1之間就可以了,至于個人的地圖,map到128,256,看個人的設(shè)計(jì)。
隨便用,饅頭超好吃。