godot computer shader noise1
1、準備工作

2、初始化

????tips:????
????????1、這里的 img.convert(Image.FORMAT_RGBA8)不能少,如果傳入的jpg文件,是沒有a通道的,在數(shù)據(jù)存放的時候,是 rgbrgbrgb這樣排列的,這里燒了一個a,等device拿到數(shù)據(jù)分割,就會分割rgbr,gbrg,brgb,這樣錯誤的情況。
????????2、image size 是我們管線的size
3、分配device的內(nèi)存和設置uniform set

????tips:
????????1、第一個0就是binding,我放到這里,方便set和后期修改的時候好用。
????????2、上傳uniforms的時候,是以數(shù)組的方式上傳的
3.1
????

????tips:
????1、寫在里面了
????2、uniform type image 會有一些其他解釋,在godot中沒有,但是在源碼里面有注釋
#https://github.com/godotengine/godot/blob/621d68e4129e7e343ff21eb3a5f4e8c1d6bbf456/servers/rendering/rendering_device.h#L745
4、運行和創(chuàng)建textureRect的texture

4.1

????????T1:uniformset的綁定,可以多個,所以我命名為uniform_set_0,至于用來干嘛,之后可以在名字上面改。
這里的uniformset可以綁定多個。
????????T2:list_dispatch就是這只總大小。
總結:
????godot在分裝opengl cs的時候,作者很有自己的見解,不過這個簡介比使用opengl更麻煩了
我們可以簡單看一下opengl的代碼
https://learnopengl.com/Guest-Articles/2022/Compute-Shaders/Introduction



沒錯,godot compute shader 的難度,遠遠比opengl還要高。
但是我們可以看到,這已經(jīng)在為后面的界面優(yōu)化做準備了。
先的情況就是沒有控制臺的東東。等他更新就好了。