系列博客总目录:https://blog.youkuaiyun.com/cRGBc/article/details/120412614
资源绑定,即 JavaScript 中(即 CPU 端)如何对待传递到 GPU 的数据进行组织、分配的一种设计。
为了完成这个过程(CPU到GPU),WebGPU 设计了几个对象用于管理这些数据,这些数据包括 某些GPUBuffer(例如UBO,但是不包括VBO)、GPUTexture、GPUSampler、存储型纹理、外部纹理五种,这几个对象是:
- 资源绑定组(以后均简称绑定组)- GPUBindGroup
- 资源绑定组布局(以后称为绑定组的布局对象)- GPUBindGroupLayout
- 管线布局 - GPUPipelineLayout
和规范中顺序略有不同,我按我上面这个来。
1 关系简易图解
GPUBindGroup <--- 1 ---┓ 动区
GPUBindGroupLayout -----------
GPUPipelineLayout <--- N ---┛ 静区
|
1
↓
GPUPipelineBase
简单的说就是绑定组有其布局,管线也有其布局;
绑定组的布局负责告诉资源长什么样子,管线的布局告诉管线着色器里头有多少类和分别有多少个资源坑位要进来;
两个布局负责沟通,那绑定组、管线就各司其职(一个负责组织管线所需的资源,一个负责某个渲染过程)。
本文详细介绍了WebGPU中的资源绑定组GPUBindGroup及其布局GPUBindGroupLayout,包括创建规则、资源类型及如何与管线布局GPUPipelineLayout配合。通过实例解析了各种资源的创建和使用限制,帮助理解GPU数据组织和传递的过程。
订阅专栏 解锁全文
781

被折叠的 条评论
为什么被折叠?



