WebGPU API和Canvas画布

webGPU yekong

WebGPU提供很多相关的AP1,通过这些WebGPU API可以控制你的显卡GPU渲染3D场景或计算数据。

api文档

WebGPU API文档

GPU概念

所谓GPU就是图形处理器,再具体点说,就是你电脑上的显卡,如果为了追求更好的性能,一般会在电脑上安装独立显卡。

GPU设备对象

创建GPU设备对象 device 非常简单,执行navigator.gpu.requestAdapteradapter.requestDevice两步操作即可完成。

requestAdapterrequestDevice都是异步函数,函数前需要加上es6语法的关键字await

async draw() {
  // 动览器请求GPU适配器
  const adapter = await navigator.gpu.requestAdapter();
  // 获取GPU设备对象,通过GPU设备对象device的webGPU API 可以控制GPU渲染过程
  const device = await adapter.requestDevice();
},

浏览器控制台测试查看,适配器对象 adapter 和GPU设备对象 device 对象的一些属性和方

console.log('适配器adapter', adapter)
console.log('GPU设备对象device', device)

借助GPU设备对象 device提供的很多属性和方法,这些属性和方法都是WebGPU APl的一部分。

// 动览器请求GPU适配器
const adapter = await navigator.gpu.requestAdapter();
console.log(adapter)
// 获取GPU设备对象,通过GPU设备对象device的webGPU API 可以控制GPU渲染过程
const device = await adapter.requestDevice();
console.log('适配器adapter', adapter)
console.log('GPU设备对象device', device)
const canvas = this.$refs.canvas
const context = canvas.getContext('webgpu')
const format = navigator.gpu.getPreferredCanvasFormat();
context.configure({
device: device,
format: format
})

喜欢