用途:把 WebGL 或 WebGL2 应用移植到 WebGPU,或把某个 WebGL 概念映射到 WebGPU 等价物。目标为 WebGPU 1.0-stable(Chrome 113+、Safari 26+、Firefox 141+)。
主要能力:提供 WebGL 概念到 WebGPU 的对照映射,包括即时模式 gl.draw* 对应 GPUCommandEncoder 录制与 queue.submit 提交、全局状态机对应不可变 GPURenderPipeline、GLSL 对应 WGSL、按名设置 uniform 对应 GPUBindGroup/GPUBindGroupLayout 的位置绑定、FBO 对应 render pass 附件、gl.getError 对应异步 pushErrorScope/popErrorScope、gl.generateMipmap 对应手动 mipmap 生成、可重上传调整大小对应销毁重建、64KB uniform 缓冲限制对应 storage buffer、gl.viewport 与裁剪 Z [-1,1] 对应 [0,1]、texImage2D 对应 writeTexture 或 copyExternalImageToTexture。
必要用法:必须为裁剪空间 Z [0,1] 重建投影矩阵,例如使用 gl-matrix 的 perspectiveZO/orthoZO;命令必须录制进 GPUCommandEncoder,渲染通道须以 pass.end() 关闭后再 encoder.finish() 并 queue.submit;绑定按位置而非名称,WGSL 的 @group/@binding 与布局索引须一致;缓冲与纹理不可变,调整大小需 destroy() 后重建;mipmap 需显式生成通道,纹理须带 RENDER_ATTACHMENT 用途;错误须用 pushErrorScope/popErrorScope 异步处理。
适用场景:小场景或首次迁移里程碑可直接逐调用翻译;若目标是获得 WebGPU 性能,则需按 pipeline 与 bind group 排序绘制、加载时构建 pipeline、用动态偏移打包 uniform、把静态场景录制为 render bundle。
限制:直接翻译会保留 WebGL 的逐对象 CPU 开销;WebGPU 无自动 mipmap 生成,未生成的高 mip 层级会采样到未初始化数据;错误异步且具传染性;缓冲与纹理不能原地调整大小。参考文件包括 references/methods.md、references/examples.md、references/anti-patterns.md。