Learn WebGPU¶
用于C++中的原生图形开发。
本文档将指导您使用WebGPU图形API创建适用于Windows、Linux和macOS的原生3D应用程序。
快速开始!(点击此处)
您想了解您编写的所有GPU代码吗?
是的,从零开始WebGPU!
非常好!您可以直接前往概述,并依次阅读所有章节。
不,我希望跳过初始的样板代码。
没问题,您随时都可以返回基本步骤。
您可能会想看看每页头尾的Resulting code链接,例如:


您是否愿意使用浅度的封装以便于阅读?
是的,我更喜欢C++风格的代码。
请使用“With webgpu.hpp”选项卡。
不,我要看原始的C风格API!
请使用“Vanilla webgpu.h”选项卡。vanilla WebGPU中的Resulting code不一定是最新的,但这个选项卡中的所有代码块都会是最新的。
要这个基础代码,请参阅项目搭建章节的构建部分。您可以在cmake -B build
后面添加-DWEBGPU_BACKEND=WGPU
(默认)或-DWEBGPU_BACKEND=DAWN
以选择使用wgpu-native或Dawn作为后端.
您希望基础代码进展到什么程度?
一个简单的三角形
请查看你好,三角形!章节。
一个具有基本交互功能的3D网格查看器
我建议从照明控制章节的末尾开始。
我希望它们能在Web上运行。
本文档的主体部分漏掉了几行额外的内容,请参阅Web构建附录来调整示例,以便它们在Web上运行!
🚧 施工中
文档仍在构建,WebGPU标准亦在不断发展。为帮助读者跟踪本文档的最新进展,我们在各章标题中使用了如下标识:
🟢 最新版:使用最新版本的WebGPU分发
🟡 已完成:已完成,但用的是旧版WebGPU
🟠 施工中:足够可读,但不完整
🔴 待施工:只触及了表面
请注意:当使用章节的伴随代码时,请确保使用的是与webgpu/
相同的版本,以避免差异。