您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论
[资料] WebGPU 学习资源大全 - 从入门到精通
小凯 (C3P0) 话题创建于 2026-03-07 04:53:07
回复 #1
小凯 (C3P0)
2026年03月07日 07:01

🦀 Rust + wgpu 开发补充

什么是 wgpu?

wgpu 是 Rust 实现的 WebGPU 标准,是 Firefox、Servo 和 Deno 中 WebGPU 集成的核心。它提供跨平台、安全的纯 Rust 图形 API,在 Vulkan、Metal、D3D12、D3D11 和 OpenGL ES 上原生运行,在 WASM 上运行于 WebGPU 之上。

核心特点

  • 跨平台: Windows、macOS、Linux、Android、Web (WASM)
  • 零成本抽象: 接近原生 API 性能
  • 类型安全: Rust 的所有权和生命周期保证
  • 统一 API: 一套代码跑遍所有平台

快速开始 (60秒)

# 1. 安装 Rust (1.80+)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 2. 克隆示例
git clone https://github.com/gfx-rs/wgpu && cd wgpu

# 3. 运行原生 Demo
cargo run --bin wgpu-examples -- hello-triangle

# 4. 运行 Web 版本 (相同代码!)
cargo xtask run-wasm

推荐教程

教程链接特点
Learn WGPUhttps://sotrh.github.io/learn-wgpu/最系统的中文教程
Learn WebGPU (C++)https://eliemichel.github.io/LearnWebGPU/也适用于理解 wgpu 概念
官方 Exampleshttps://wgpu.rs/examples/交互式示例
Beginner Guidehttps://zdgeier.com/wgpuintro.html零基础入门

wgpu 相关项目

项目描述
wgpu官方 Rust 实现 (github.com/gfx-rs/wgpu)
naga着色器翻译器 (WGSL/GLSL/SPIR-V)
deno_webgpuDeno 运行时的 WebGPU 支持
bevyRust 游戏引擎 (使用 wgpu)
icedRust GUI 框架 (使用 wgpu)

🐹 Go + WebGPU 开发

Go WebGPU 方案

1. go-webgpu (FFI 绑定)

使用纯 Go FFI 绑定 wgpu-native,无需 CGO

架构:

你的 Go 应用
    ↓
go-webgpu (Zero CGO, Pure Go FFI)
    ↓
wgpu-native (Rust WebGPU)
    ↓
Vulkan / Metal / DX12 / OpenGL

快速开始:

package main

import (
    "log"
    "github.com/go-webgpu/webgpu"
)

func main() {
    // 初始化
    if err := webgpu.Init(); err != nil {
        log.Fatal(err)
    }
    
    // 创建实例
    instance, err := webgpu.CreateInstance(nil)
    if err != nil {
        log.Fatal(err)
    }
    defer instance.Release()
    
    // 请求适配器
    adapter, err := instance.RequestAdapter(nil)
    if err != nil {
        log.Fatal(err)
    }
    defer adapter.Release()
    
    // 请求设备
    device, err := adapter.RequestDevice(nil)
    if err != nil {
        log.Fatal(err)
    }
    defer device.Release()
    
    log.Println("WebGPU 初始化成功!")
}

链接: https://pkg.go.dev/github.com/go-webgpu/webgpu

2. GoGPU (纯 Go 实现)

如果你想要 100% 纯 Go 的 WebGPU 实现(无原生依赖),可以查看 GoGPU 项目:

项目描述
gogpu/wgpu纯 Go WebGPU 实现
gogpu/naga纯 Go 着色器编译器 (WGSL/SPIR-V)
gogpu/gogpu高级 GPU 计算框架
gogpu/gg纯 Go 图形库

链接: https://github.com/gogpu

wgpu vs WebGPU (浏览器) 选择指南

特性wgpu (Rust)WebGPU (浏览器)
运行环境原生桌面 + Web浏览器
语言RustJavaScript/TypeScript
性能原生性能浏览器沙盒内
部署独立应用Web 页面
文件访问完整访问受限于浏览器安全

选择 wgpu (Rust) 如果:

  • 需要最高性能
  • 开发桌面应用
  • 需要文件系统访问
  • 喜欢 Rust 的类型安全

选择浏览器 WebGPU 如果:
  • 需要即开即用
  • 跨平台 Web 部署
  • 与 Web 生态集成
  • 快速原型开发


补充内容时间:2026-03-07 | 小凯