godot computer shader noise2
我们把之前的代码复制进去


然后就会得到这个

我已经随机化了,完全不可能出现这个啊。
这还是循环的,我们为了实现随机,就用sin(uv)然后取上面你的小数。这个图形就和没有fract是一样的感觉。

好吧,确实就是没有fract。
我靠,他不能fract啊。提交bug。
我们把godot的noise texture 试着传入进来。
既然搞都搞了,并行、不调用其他的ID的情况下,就用shader就好了。
我们接下来就需要
1、local 准备两个不同的texutre
2、第一个:voro texture(中心白),取反(中心黑,形成路径)。然后/2,就是让范围再0~0.5(为何和第二个加权,我们抛弃<0.4的数据(le))
3、第二个:noise texture,一般情况noisetexture 大范围处于0.2~0.8之间,首先/2(范围再0.1~0.4之间)
4、两个texture相加,抛弃小于0.4值的数据(value<le?vlaue = 0.0)
一、创建两个noisetexture
1、创建载体

2、创建voro texture

3、创建 noisetexture

二、把这两个传过去
1、初始化两个texture rect
初始化节点的时候,通通用@onready
异步处理,通通用 signal
把这个做得很好只有unreal

2、准备数据接口

3、传入数据,绑定uniform

gen_textureBuffer_R_W,只修改了一行


上传上去后,没啥问题了,那测试一下。

不出意外的出了意外,难道我再套一个 subviewport截图,再传进去。我尼玛,我不知道是我有毛病,还是godot有毛病。
三、吐槽godot和unreal
写到这里,我又要炸godot,不成熟真下头啊。像unreal多好,就是基于事件系统的多线程,事件系统就是不参与主循环运行,主循循环只是发送信号,让event执行,全是多线程。
unreal 更加的适合多人共同开发,尤其是资源庞大的游戏。godot的资源管理只能说一塌糊涂。
godot的事件系统还算有点可以,做了很多简化,起码8分,unreal的事件系统有10分,堪称完美。
不过unreal砍掉了2d项目,真的是放了godot一条生路,就是我使用godot和unreal生成2d tilemap,unreal是不卡顿的。
四、做一个延迟
得到一个奇怪的报错

我怎么就吃出两碗粉了??
我用它的texturerect渲染一个512*512的图,返回的时候也是512*512*4的数据,我用这个数据生成一个image,然后把这个image转换成RGBA8的格式,然后就成1398100了。
半成品发出来糊弄人,我还不知道他的cs还会有什么bug,我搞你个锤子。
跑路了,没有出到godot5,这东西我还是不碰了。