Information
tl;dr strahl
is a WebGPU Path Tracer for the web.
strahl is a path tracing library for web applications. Path tracing is a technique based on ray tracing to render 3D models to images with realistic reflections and ambient occlusion without the need for pregenerated artifacts. strahl leverages WebGPU for optimal performance and is based on the OpenPBR surface shading model.
The master thesis report contains a thorough introduction into the use cases, ray tracing and path tracing and a comparison to rasterization. This serves as a very brief summary.
Real-time Rendering with Rasterization
Rasterization is the predominant technique to perform real-time rendering on the web. If you're familiar with Three.js or Babylon.js you most likely already used rasterization.
However, rasterization has limitations when it comes to implementing effects such as shadow casting, reflections, color bleeding, and ambient occlusion. These are subtle effects which are crucial for high-fidelity rendering.
Ray Tracing
Ray tracing inherently addresses these limitations but at the cost of increased rendering time. strahl
is a library which leverages ray tracing to generate interactive 3D renderings in the browser.
Path tracing is a specific implementation of ray tracing and describes the chosen algorithm.
Use Case
strahl
is designed to be used to for use cases where near real-time rendering performance is sufficient, pregenerated artifacts are hard to obtain, and visual fidelity is important. The demo from the start page is one such example of a complex CAD model which consists of one million triangles and is derived from production CAD data.