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

WebGPU 规范篇 11 Canvas上下文求职学习资料

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

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

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

  • 1 GPUCanvasContext
  • 2 GPUCanvasConfiguration 类型


1 GPUCanvasContext

GPUCanvasContext 类型,其对象被称作 WebGPU 上下文。

它的作用就是让 HTML 上的 Canvas 元素,作为 WebGPU 中的一个纹理,与 WebGPU 进行渲染互动。

它的获取方法同 WebGLRenderingContext

const canvas = document.createElement('canvas') const context = canvas.getContext('webgpu')

但是它与 WebGLRenderingContext 最大的不同是,它只负责与 Canvas 的沟通,在 WebGPU 端简单地扮演着 Canvas 与 WebGPU 的沟通桥梁,让 Canvas 作为一个纹理对象;而后者除了上述职责外,还包括创建 WebGL 子对象,绑定、编译着色器、触发渲染等等等等。

它的定义如下:

[Exposed=(Window, DedicatedWorker), SecureContext] interface GPUCanvasContext {   readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;    undefined configure(GPUCanvasConfiguration configuration);   undefined unconfigure();    GPUTextureFormat getPreferredFormat(GPUAdapter adapter);   GPUTexture getCurrentTexture(); };
  • canvas 属性,你可以再获取 Canvas 元素;
  • configure 方法,用于配置 Canvas 的上下文,告诉 WebGPU 这个 Canvas 能扮演一个什么样的纹理对象;它接收一个对象参数,它的类型是 GPUCanvasConfiguration;
  • unconfigure 方法是 configure 方法的反作用,即取消配置,并移除配置时产生的纹理对象;
  • getPrefferedFormat 方法接收一个适配器对象,返回一个合适适配器对象的纹理格式;
  • getCurrentTexture 方法返回 Canvas 所扮演的那个 GPUTexture 对象,需要注意的是,每一帧都要使用这个方法获取对应的 GPUTexture(如果是渲染管线用到了颜色附件来输出的话)。

2 GPUCanvasConfiguration 类型

配置 Canvas 时的对象参数的类型。

enum GPUCanvasCompositingAlphaMode {   "opaque",   "premultiplied", };  dictionary GPUCanvasConfiguration {   required GPUDevice device;   required GPUTextureFormat format;   GPUTextureUsageFlags usage = 0x10;  // 等价 GPUTextureUsage.RENDER_ATTACHMENT   GPUPredefinedColorSpace colorSpace = "srgb";   GPUCanvasCompositingAlphaMode compositingAlphaMode = "opaque";   GPUExtent3D size; };
  • device,即设备对象;
  • usage,纹理用途,Canvas 所扮演的纹理默认是用来做颜色附件,即默认值 0x10
  • colorSpace,Canvas 的色彩空间,只能是 “srgb”;

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

  • 1 GPUCanvasContext
  • 2 GPUCanvasConfiguration 类型


1 GPUCanvasContext

GPUCanvasContext 类型,其对象被称作 WebGPU 上下文。

它的作用就是让 HTML 上的 Canvas 元素,作为 WebGPU 中的一个纹理,与 WebGPU 进行渲染互动。

它的获取方法同 WebGLRenderingContext

const canvas = document.createElement('canvas') const context = canvas.getContext('webgpu')

但是它与 WebGLRenderingContext 最大的不同是,它只负责与 Canvas 的沟通,在 WebGPU 端简单地扮演着 Canvas 与 WebGPU 的沟通桥梁,让 Canvas 作为一个纹理对象;而后者除了上述职责外,还包括创建 WebGL 子对象,绑定、编译着色器、触发渲染等等等等。

它的定义如下:

[Exposed=(Window, DedicatedWorker), SecureContext] interface GPUCanvasContext {   readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;    undefined configure(GPUCanvasConfiguration configuration);   undefined unconfigure();    GPUTextureFormat getPreferredFormat(GPUAdapter adapter);   GPUTexture getCurrentTexture(); };
  • canvas 属性,你可以再获取 Canvas 元素;
  • configure 方法,用于配置 Canvas 的上下文,告诉 WebGPU 这个 Canvas 能扮演一个什么样的纹理对象;它接收一个对象参数,它的类型是 GPUCanvasConfiguration;
  • unconfigure 方法是 configure 方法的反作用,即取消配置,并移除配置时产生的纹理对象;
  • getPrefferedFormat 方法接收一个适配器对象,返回一个合适适配器对象的纹理格式;
  • getCurrentTexture 方法返回 Canvas 所扮演的那个 GPUTexture 对象,需要注意的是,每一帧都要使用这个方法获取对应的 GPUTexture(如果是渲染管线用到了颜色附件来输出的话)。

2 GPUCanvasConfiguration 类型

配置 Canvas 时的对象参数的类型。

enum GPUCanvasCompositingAlphaMode {   "opaque",   "premultiplied", };  dictionary GPUCanvasConfiguration {   required GPUDevice device;   required GPUTextureFormat format;   GPUTextureUsageFlags usage = 0x10;  // 等价 GPUTextureUsage.RENDER_ATTACHMENT   GPUPredefinedColorSpace colorSpace = "srgb";   GPUCanvasCompositingAlphaMode compositingAlphaMode = "opaque";   GPUExtent3D size; };
  • device,即设备对象;
  • usage,纹理用途,Canvas 所扮演的纹理默认是用来做颜色附件,即默认值 0x10
  • colorSpace,Canvas 的色彩空间,只能是 “srgb”;

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

  • 1 GPUCanvasContext
  • 2 GPUCanvasConfiguration 类型


1 GPUCanvasContext

GPUCanvasContext 类型,其对象被称作 WebGPU 上下文。

它的作用就是让 HTML 上的 Canvas 元素,作为 WebGPU 中的一个纹理,与 WebGPU 进行渲染互动。

它的获取方法同 WebGLRenderingContext

const canvas = document.createElement('canvas') const context = canvas.getContext('webgpu')

但是它与 WebGLRenderingContext 最大的不同是,它只负责与 Canvas 的沟通,在 WebGPU 端简单地扮演着 Canvas 与 WebGPU 的沟通桥梁,让 Canvas 作为一个纹理对象;而后者除了上述职责外,还包括创建 WebGL 子对象,绑定、编译着色器、触发渲染等等等等。

它的定义如下:

[Exposed=(Window, DedicatedWorker), SecureContext] interface GPUCanvasContext {   readonly attribute (HTMLCanvasElement or OffscreenCanvas) canvas;    undefined configure(GPUCanvasConfiguration configuration);   undefined unconfigure();    GPUTextureFormat getPreferredFormat(GPUAdapter adapter);   GPUTexture getCurrentTexture(); };
  • canvas 属性,你可以再获取 Canvas 元素;
  • configure 方法,用于配置 Canvas 的上下文,告诉 WebGPU 这个 Canvas 能扮演一个什么样的纹理对象;它接收一个对象参数,它的类型是 GPUCanvasConfiguration;
  • unconfigure 方法是 configure 方法的反作用,即取消配置,并移除配置时产生的纹理对象;
  • getPrefferedFormat 方法接收一个适配器对象,返回一个合适适配器对象的纹理格式;
  • getCurrentTexture 方法返回 Canvas 所扮演的那个 GPUTexture 对象,需要注意的是,每一帧都要使用这个方法获取对应的 GPUTexture(如果是渲染管线用到了颜色附件来输出的话)。

2 GPUCanvasConfiguration 类型

配置 Canvas 时的对象参数的类型。

enum GPUCanvasCompositingAlphaMode {   "opaque",   "premultiplied", };  dictionary GPUCanvasConfiguration {   required GPUDevice device;   required GPUTextureFormat format;   GPUTextureUsageFlags usage = 0x10;  // 等价 GPUTextureUsage.RENDER_ATTACHMENT   GPUPredefinedColorSpace colorSpace = "srgb";   GPUCanvasCompositingAlphaMode compositingAlphaMode = "opaque";   GPUExtent3D size; };
  • device,即设备对象;
  • usage,纹理用途,Canvas 所扮演的纹理默认是用来做颜色附件,即默认值 0x10
  • colorSpace,Canvas 的色彩空间,只能是 “srgb”;

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

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

评论 抢沙发

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

b2b链

联系我们联系我们