欢迎光临散文网 会员登陆 & 注册

godot computer shader 的存储方式

2023-06-01 00:52 作者:damedown  | 我要投稿

一、既然是游戏引擎,那么第一个就该是texture

我们可以创建texture,然后把输入导入。

关于 texture 的usage

挨个解释他的用处

1、可以被其他的shader 快速调用


2、存储图片和set_pixel

官方解释就是 load store atomic operations,这里已经可以被cpu读写和修改了。下面的 texture_usage_cpu_read_bit说的是开了这个,我可以更快的被cpu读取。

3、device 上可以被操作

这三个分别表示:

64:在device 中被device 修改

128:device_a 复制到 device_b中,可以作为device_a ,可读

256:device_a 复制到 device_b中,可以作为device_b ,可写


把它当做并行运算是不对的,而是一种高效的渲染前 数据处理 专用库

二、framebuffer 帧缓存

这里我们可以不管他,opengl会在一定程度考虑高效性,都游戏引擎了,随便弄一个都有subviewport都有framebuffer,直接跳过他,如果是面向手机,那么这点效率也是需要考虑的。

三、verter buffer

布料模拟用上。

四、index buffer 

布料模拟用上。

五、storage buffer

小;块;大小明确

Vulkan 官方解释


这里解释我们现在用之前用的都是unfrom buffer,但是 storage buffer 的速度更快,超过unfrom的速度。


在buffer生成后, 绑定uniform又是一个重点。


具体情况具体操作,如果不追求效率,我全用 texture buffer都可以。


总结:opengl-cs是一个针对渲染,更接近底层驱动的东东。


学习这个,先不要追求效率,因为能够写这玩意儿,能够搞清楚这玩意已经是少数人了。


在了解他的存储后,就是他的计算,然而他的计算反而没难度。他只是工具啊,难的是数学。


godot computer shader 的存储方式的评论 (共 条)

分享到微博请遵守国家法律