对于 Web 开发人员来说,WebGPU 是一个 Web 图形 API,可提供对 GPU 的统一和快速访问。WebGPU 公开了现代硬件功能,并允许在 GPU 上进行渲染和计算操作,类似于 Direct3D 12、Metal 和 Vulkan。
虽然这是真的,但这个故事并不完整。WebGPU 是协作努力的结果,包括 Apple、Google、Intel、Mozilla 和 Microsoft 等大公司。其中一些人意识到 WebGPU 可能不仅仅是一个 JavaScript API,而是一个跨平台的图形 API,适用于除 Web 之外的跨生态系统的开发人员。
为了满足主要用例,Chrome 113 中引入了 JavaScript API。然而,与之一起开发的另一个重要项目是:webgpu.hC API。这个 C 头文件列出了 WebGPU 的所有可用过程和数据结构。它充当与平台无关的硬件抽象层,允许您通过在不同平台上提供一致的接口来构建特定于平台的应用程序。
在本文档中,我们将学习如何使用 WebGPU 编写一个可在 Web 和特定平台上运行的小型 C++ 应用。剧透警告:只需对代码库进行少量调整,你就会获得浏览器窗口和桌面窗口中出现的相同红色三角形。
NSDT工具推荐:Three.js AI纹理开发包-YOLO合成数据生成器-GLTF/GLB在线编辑-3D模型格式在线转换-可编程3D场景编辑器-REVIT导出3D模型插件-3D模型语义搜索引擎-AI模型在线查看-Three.js虚拟轴心开发包-3D模型在线减面-STL模型在线切割-3D道路快速建模
1、它是如何工作的?
要查看完整的应用程序,请查看?WebGPU 跨平台应用程序存储库。
该应用程序是一个极简的 C++ 示例,展示了如何使用?WebGPU?从单个代码库构建桌面和 Web 应用程序。在底层,它通过名为webgpu_cpp.h?的 C++ 包装器使用 WebGPU 的 webgpu.h 作为与平台无关的硬件抽象层。
警告:webgpu.h 和 webgpu_cpp.h API 可能会发生变化。
在 Web 上,该应用程序是针对Emscripten?构建的,它在 JavaScript API 之上具有实现 webgpu.h 的绑定。在特定平台(如 macOS 或 Windows)上,可以针对 Chromium 的跨平台 WebGPU 实现 Dawn 构建此项目。值得一提的是,webgpu.h 的 Rust