用途:面向 WebGPU 高性能画布渲染的生产实践,重点是与 Web 组件集成时的设备初始化、缓冲区管理、着色器开发与资源生命周期管理。
主要能力:提供九条核心规则与配套代码模式,包括:单例式适配器/设备初始化与设备丢失恢复;画布上下文配置(格式、alphaMode、colorSpace)与 devicePixelRatio 缩放;顶点、统一、存储缓冲区的创建与更新;WGSL 顶点、片元与计算着色器写法;渲染管线创建与着色器编译错误检查;绑定组与采样器、显式绑定组布局;渲染通道编码与 load/store 操作;计算着色器派发与工作组数量计算;纹理创建、外部图像拷贝与深度纹理。
使用方式:先做特性检测 if (!navigator.gpu) 回退 Canvas 2D;通过 navigator.gpu.requestAdapter 与 requestDevice 获取设备并复用;用 canvas.getContext('webgpu') 配置上下文;按用途选择 GPUBufferUsage 标志;用 device.createShaderModule 与 createRenderPipeline 建立管线;用命令编码器录制并 device.queue.submit 提交。
适用场景:粒子系统、实时图形、计算密集型画布渲染,以及需要与 HTML 合成、支持触摸与高 DPI 的交互式可视化。
限制:浏览器支持情况为 Chrome 113+、Edge 113+、Safari 18+ 完整支持,Firefox 139+ 仅在 Nightly 且需开启标志;WGSL 中 vec3 在统一缓冲区按 16 字节对齐,需用 vec4 或手动填充;统一缓冲区最小 16 字节。具体收费、价格与平台信息暂未提供。