Abstract
WebGPU is the novel graphics standard that makes it possible to implement high performance graphical applications on mobile, desktop and the web. In this workshop, I guide you through the process of using Rustand WebGPU compute shaders for computer graphics applications whose needs go beyond the traditional rasterization pipeline.
Together, we will write a GPU-accelerated ray tracing renderer from scratch!
Unlike WebGL, WebGPU finally brings compute shaders to the web. For Rust, WebGPU is of particular interest, thanks to the Rust-based wgpu library that not only poses the core of Firefox's WebGPU implementation but can also be used as a native library to write cross-platform graphical Rust applications outside the web.
No prior knowledge of graphics programming is required, but we will make use of some linear algebra. We start with a top-level view of the graphics pipeline, where compute shaders fit into this and how this translates to the Rust wgpu library and the WebGPU standard respectively. Then, we learn what is required to bring a ray tracing application to the desktop first, using the native Rust wgpu library, and finally to the browser using WebAssembly.
Participants may use Windows, macOS or Linux, thanks to the cross-platform nature of wgpu.
The only requirements upfront are a working, up to date Rust development environment and up to date graphics drivers.
Both dedicated and integrated GPUs can be used (AMD, Intel, Nvidia, Apple Silicon).