WebGPU提供很多相关的AP1,通过这些WebGPU API可以控制你的显卡GPU渲染3D场景或计算数据。
api文档
GPU概念
所谓GPU就是图形处理器,再具体点说,就是你电脑上的显卡,如果为了追求更好的性能,一般会在电脑上安装独立显卡。
GPU设备对象
创建GPU设备对象 device
非常简单,执行navigator.gpu.requestAdapter
和 adapter.requestDevice
两步操作即可完成。
requestAdapter
和requestDevice
都是异步函数,函数前需要加上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
})