godot visual shader -4 地平线
1、
现在我们的texture的大小是3000*2000的,我不能在shader里面创建一个30*20的东东。

但是我可以通过frequency来缩放。
乘积越大,越是放大。
但但这并不是我需要的缩放,我需要的是不缩放,低精度。
我需要 uv*sizeOfTexture 把uv放到到3000*2000,如果我这时候需要400*400位一个大block,
我只需要3000*2000 / 400*400,我需要一些取小整

还有round 四舍五入。
fract,取小数。
因为地图的大小可以改变的,但是我的区块是需要限定的。
最后总结为1行:
uv_t = floor(uv / texture_pixel_size /vec2(400,400));设置阶梯
uv = uv_t * texture_pixel_size * vec2(400,400);把域变回0~1
我不知道godot有没有这个函数,反正我现在没看到。

2、准备一个noise 11

因为我随机的起点起始有些问题,不过我懒得改,后边需要传入seed。
3、把刚刚的uv连接上

这时候再判断下,如果uv.y>value:value = 0.0value= 1.0;

当然这种做法是错的,godot的bug不是一般的多

其次设定上的骚操作。

output的那个value,不能重新用。避免和其他的data命名冲突

我一时半会儿不知道怎么表扬他了。

这就是我们voro的uv需要读取的色彩。
再看一下完整的。

嘿嘿。自学当哭瞎。
这东西就像炉石传说一样,没有bug,全是特性哦。
还有一个骚的特性,那就是 没有连接color out 会没有parameter,他就是要强迫开发人员使用拖拽。但是他这操作,用过的都说哭了。

总结:
用来做noisemap,是很屎涨的。这里是用来做搞texture生成和特效的。
不过基本上已经熟练了,我就不继续搞这个了。