区块链技术博客
www.b2bchain.cn

WebGPU 规范篇 01 规范基础求职学习资料

本文介绍了WebGPU 规范篇 01 规范基础求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

系列博客目录传送门:https://xiaozhuanlan.com/topic/9587342601

  • 1 公共约定
    • ① WebGPU 接口
    • ② 对象描述者
  • 2 坐标系统
  • 3 核心对象
    • Adapter(适配器)
    • Devices(设备)
  • 4 WebGPU 的功能列表及其最大限制
    • 4.2 功能
      • ① depth-clamping
      • ② depth24unorm-stencil8
      • ③ depth32float-stencil8
      • ④ pipeline-statistics-query


WebGPU 基本概念节选翻译,选自 WebGPU Spec 3 Fundamentals,本文列举一部分简单的内容,其余内容以后单独拉出去和其他资料一起谈。

1 公共约定

节选自 WebGPU Spec 3.1 Conventions

① WebGPU 接口

WebGPU 接口是内部对象的公开访问形式,和大多数语言的接口语法提供的功能差不多。

这里只需注意,继承了 GPUObjectBase 的接口都是 WebGPU 接口。

interface mixin GPUObjectBase {   attribute USVString? label; };

label 字段用来描述对象自身,可空。

② 对象描述者

对象描述者包含创建一个对象所需的信息,通常调用 GPUDevicecreateXXX 方法完成。

dictionary GPUObjectDescriptorBase {   USVString label; };

此处的 label 和 GPUObjectBase 的 label 含义差不多。

2 坐标系统

节选自 WebGPU Spec 3.3 Coordinate Systems

  • 在 NDC 中,Y轴朝上。NDC的点 (-1.0, -1.0) 位于 NDC 的左下角。NDC的 X 和 Y 的最大最小值为 1 和 -1,Z 的取值范围是 [0, 1]。NDC 中超出此范围的点会被剪裁。
  • 在 Framebuffer、视口坐标系和 Fragment/像素坐标系中 Y轴朝下。原点 (0, 0) 位于这几个坐标系的左上角。
  • 视窗坐标和帧缓存(Framebuffer)坐标相匹配。
  • 纹理坐标的原点 (0, 0) 表示纹理数据的第一个纹素(texel)。

WebGPU 的坐标系和 DirectX 坐标系匹配。

3 核心对象

节选自 WebGPU Spec 3.5 Core Internal Objects

Adapter(适配器)

适配器对象表示 WebGPU 在具体系统中现代图形接口的实现。如果适配器对象变得不可用了,那就会被标记为无效,并且永远不会再变有效,并且,连带着由它创建的设备等对象一并变得无效。

适配器对象可以简单理解为图形处理器,既可以是真的物理显卡,也可以是由模拟出来的的软显卡。不同的适配器对象允许指向同一个显卡,譬如适配器A和适配器B,只是在请求参数上略有不同。

适配器对象在 WebGPU 中由 GPUAdapter 接口实现。

关于适配器对象的请求与创建过程,参考初始化部分的内容。

Devices(设备)

设备是适配器的逻辑功能上的实现,所有的 WebGPU 子对象均由设备对象创建,它可以在专用型 WebWorker 中使用。

如果设备对象失效了,那么由设备对象创建的子对象也会变得不可用。

设备对象在 WebGPU 中由 GPUDevice 接口实现。

关于设备对象的请求与创建过程,参考初始化部分的内容。

4 WebGPU 的功能列表及其最大限制

节选自 WebGPU Spec 3.6 Optional Capabilities

4.2 功能

功能,指的是一组可选的 WebGPU 功能,并不是所有的平台都支持,通常是操作系统或者显卡硬件不支持。

每个 GPUAdapter 都会带有一个 features 对象,在请求设备对象时只能用这个对象内的功能,也只有在请求设备对象时,才能设置这个即将被创建的设备对象能有哪些功能。

有关 WebGPU 功能的具体描述,参考 WebGPU Spec 23. Feature Index 后列举如下:

译者注

有点蛋疼的是,你直接访问 adapter.features 它只是个类似 Set 的对象,而不是普通的对象能看到里面有什么支持的功能,要你自己去访问 values …

① depth-clamping

启用这个功能时,GPUPrimitiveState 接口的 clampDepth 属性才能被设置:

const renderPipeline = device.createRenderPipeline({   /*...*/,   primitive: {     /* ... */,     clampDepth: true   } })

② depth24unorm-stencil8

启用这个功能时,才能创建 “depth24unorm-stencil8” 格式的纹理对象:

const texture = device.createTexture({   /* ... */,   format: "depth24unorm-stencil8" })

③ depth32float-stencil8

启用这个功能时,才能创建 “depth32float-stencil8” 格式的纹理对象:

const texture = device.createTexture({   /* ... */,   format: "depth32float-stencil8" })

④ pipeline-statistics-query

系列博客目录传送门:https://xiaozhuanlan.com/topic/9587342601

  • 1 公共约定
    • ① WebGPU 接口
    • ② 对象描述者
  • 2 坐标系统
  • 3 核心对象
    • Adapter(适配器)
    • Devices(设备)
  • 4 WebGPU 的功能列表及其最大限制
    • 4.2 功能
      • ① depth-clamping
      • ② depth24unorm-stencil8
      • ③ depth32float-stencil8
      • ④ pipeline-statistics-query


WebGPU 基本概念节选翻译,选自 WebGPU Spec 3 Fundamentals,本文列举一部分简单的内容,其余内容以后单独拉出去和其他资料一起谈。

1 公共约定

节选自 WebGPU Spec 3.1 Conventions

① WebGPU 接口

WebGPU 接口是内部对象的公开访问形式,和大多数语言的接口语法提供的功能差不多。

这里只需注意,继承了 GPUObjectBase 的接口都是 WebGPU 接口。

interface mixin GPUObjectBase {   attribute USVString? label; };

label 字段用来描述对象自身,可空。

② 对象描述者

对象描述者包含创建一个对象所需的信息,通常调用 GPUDevicecreateXXX 方法完成。

dictionary GPUObjectDescriptorBase {   USVString label; };

此处的 label 和 GPUObjectBase 的 label 含义差不多。

2 坐标系统

节选自 WebGPU Spec 3.3 Coordinate Systems

  • 在 NDC 中,Y轴朝上。NDC的点 (-1.0, -1.0) 位于 NDC 的左下角。NDC的 X 和 Y 的最大最小值为 1 和 -1,Z 的取值范围是 [0, 1]。NDC 中超出此范围的点会被剪裁。
  • 在 Framebuffer、视口坐标系和 Fragment/像素坐标系中 Y轴朝下。原点 (0, 0) 位于这几个坐标系的左上角。
  • 视窗坐标和帧缓存(Framebuffer)坐标相匹配。
  • 纹理坐标的原点 (0, 0) 表示纹理数据的第一个纹素(texel)。

WebGPU 的坐标系和 DirectX 坐标系匹配。

3 核心对象

节选自 WebGPU Spec 3.5 Core Internal Objects

Adapter(适配器)

适配器对象表示 WebGPU 在具体系统中现代图形接口的实现。如果适配器对象变得不可用了,那就会被标记为无效,并且永远不会再变有效,并且,连带着由它创建的设备等对象一并变得无效。

适配器对象可以简单理解为图形处理器,既可以是真的物理显卡,也可以是由模拟出来的的软显卡。不同的适配器对象允许指向同一个显卡,譬如适配器A和适配器B,只是在请求参数上略有不同。

适配器对象在 WebGPU 中由 GPUAdapter 接口实现。

关于适配器对象的请求与创建过程,参考初始化部分的内容。

Devices(设备)

设备是适配器的逻辑功能上的实现,所有的 WebGPU 子对象均由设备对象创建,它可以在专用型 WebWorker 中使用。

如果设备对象失效了,那么由设备对象创建的子对象也会变得不可用。

设备对象在 WebGPU 中由 GPUDevice 接口实现。

关于设备对象的请求与创建过程,参考初始化部分的内容。

4 WebGPU 的功能列表及其最大限制

节选自 WebGPU Spec 3.6 Optional Capabilities

4.2 功能

功能,指的是一组可选的 WebGPU 功能,并不是所有的平台都支持,通常是操作系统或者显卡硬件不支持。

每个 GPUAdapter 都会带有一个 features 对象,在请求设备对象时只能用这个对象内的功能,也只有在请求设备对象时,才能设置这个即将被创建的设备对象能有哪些功能。

有关 WebGPU 功能的具体描述,参考 WebGPU Spec 23. Feature Index 后列举如下:

译者注

有点蛋疼的是,你直接访问 adapter.features 它只是个类似 Set 的对象,而不是普通的对象能看到里面有什么支持的功能,要你自己去访问 values …

① depth-clamping

启用这个功能时,GPUPrimitiveState 接口的 clampDepth 属性才能被设置:

const renderPipeline = device.createRenderPipeline({   /*...*/,   primitive: {     /* ... */,     clampDepth: true   } })

② depth24unorm-stencil8

启用这个功能时,才能创建 “depth24unorm-stencil8” 格式的纹理对象:

const texture = device.createTexture({   /* ... */,   format: "depth24unorm-stencil8" })

③ depth32float-stencil8

启用这个功能时,才能创建 “depth32float-stencil8” 格式的纹理对象:

const texture = device.createTexture({   /* ... */,   format: "depth32float-stencil8" })

④ pipeline-statistics-query

系列博客目录传送门:https://xiaozhuanlan.com/topic/9587342601

  • 1 公共约定
    • ① WebGPU 接口
    • ② 对象描述者
  • 2 坐标系统
  • 3 核心对象
    • Adapter(适配器)
    • Devices(设备)
  • 4 WebGPU 的功能列表及其最大限制
    • 4.2 功能
      • ① depth-clamping
      • ② depth24unorm-stencil8
      • ③ depth32float-stencil8
      • ④ pipeline-statistics-query


WebGPU 基本概念节选翻译,选自 WebGPU Spec 3 Fundamentals,本文列举一部分简单的内容,其余内容以后单独拉出去和其他资料一起谈。

1 公共约定

节选自 WebGPU Spec 3.1 Conventions

① WebGPU 接口

WebGPU 接口是内部对象的公开访问形式,和大多数语言的接口语法提供的功能差不多。

这里只需注意,继承了 GPUObjectBase 的接口都是 WebGPU 接口。

interface mixin GPUObjectBase {   attribute USVString? label; };

label 字段用来描述对象自身,可空。

② 对象描述者

对象描述者包含创建一个对象所需的信息,通常调用 GPUDevicecreateXXX 方法完成。

dictionary GPUObjectDescriptorBase {   USVString label; };

此处的 label 和 GPUObjectBase 的 label 含义差不多。

2 坐标系统

节选自 WebGPU Spec 3.3 Coordinate Systems

  • 在 NDC 中,Y轴朝上。NDC的点 (-1.0, -1.0) 位于 NDC 的左下角。NDC的 X 和 Y 的最大最小值为 1 和 -1,Z 的取值范围是 [0, 1]。NDC 中超出此范围的点会被剪裁。
  • 在 Framebuffer、视口坐标系和 Fragment/像素坐标系中 Y轴朝下。原点 (0, 0) 位于这几个坐标系的左上角。
  • 视窗坐标和帧缓存(Framebuffer)坐标相匹配。
  • 纹理坐标的原点 (0, 0) 表示纹理数据的第一个纹素(texel)。

WebGPU 的坐标系和 DirectX 坐标系匹配。

3 核心对象

节选自 WebGPU Spec 3.5 Core Internal Objects

Adapter(适配器)

适配器对象表示 WebGPU 在具体系统中现代图形接口的实现。如果适配器对象变得不可用了,那就会被标记为无效,并且永远不会再变有效,并且,连带着由它创建的设备等对象一并变得无效。

适配器对象可以简单理解为图形处理器,既可以是真的物理显卡,也可以是由模拟出来的的软显卡。不同的适配器对象允许指向同一个显卡,譬如适配器A和适配器B,只是在请求参数上略有不同。

适配器对象在 WebGPU 中由 GPUAdapter 接口实现。

关于适配器对象的请求与创建过程,参考初始化部分的内容。

Devices(设备)

设备是适配器的逻辑功能上的实现,所有的 WebGPU 子对象均由设备对象创建,它可以在专用型 WebWorker 中使用。

如果设备对象失效了,那么由设备对象创建的子对象也会变得不可用。

设备对象在 WebGPU 中由 GPUDevice 接口实现。

关于设备对象的请求与创建过程,参考初始化部分的内容。

4 WebGPU 的功能列表及其最大限制

节选自 WebGPU Spec 3.6 Optional Capabilities

4.2 功能

功能,指的是一组可选的 WebGPU 功能,并不是所有的平台都支持,通常是操作系统或者显卡硬件不支持。

每个 GPUAdapter 都会带有一个 features 对象,在请求设备对象时只能用这个对象内的功能,也只有在请求设备对象时,才能设置这个即将被创建的设备对象能有哪些功能。

有关 WebGPU 功能的具体描述,参考 WebGPU Spec 23. Feature Index 后列举如下:

译者注

有点蛋疼的是,你直接访问 adapter.features 它只是个类似 Set 的对象,而不是普通的对象能看到里面有什么支持的功能,要你自己去访问 values …

① depth-clamping

启用这个功能时,GPUPrimitiveState 接口的 clampDepth 属性才能被设置:

const renderPipeline = device.createRenderPipeline({   /*...*/,   primitive: {     /* ... */,     clampDepth: true   } })

② depth24unorm-stencil8

启用这个功能时,才能创建 “depth24unorm-stencil8” 格式的纹理对象:

const texture = device.createTexture({   /* ... */,   format: "depth24unorm-stencil8" })

③ depth32float-stencil8

启用这个功能时,才能创建 “depth32float-stencil8” 格式的纹理对象:

const texture = device.createTexture({   /* ... */,   format: "depth32float-stencil8" })

④ pipeline-statistics-query

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » WebGPU 规范篇 01 规范基础求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们