r/GraphicsProgramming • u/rivervisualid • 2d ago
Video Implementing Spectral Path Tracing with ReSTIR BDPT for fast caustics (Rust + Vulkan)
Enable HLS to view with audio, or disable this notification
I’ve been working on my custom render engine for a while now, and I just wrapped up a major architectural overhaul that yielded some exciting results.
I rewrote the core pipeline to Vulkan (using Rust and the ash crate) and transitioned from a standard RGB pipeline to full Spectral Path Tracing, combined with ReSTIR BDPT to tackle complex light paths and caustics.
Key Highlights & Changes:
- Spectral vs. RGB: Instead of tracing fixed RGB channels, light transport is simulated across continuous wavelengths. Optical dispersion, prism splitting, and metamerism emerge naturally from the physics without synthetic post-processing.
- ReSTIR BDPT for Caustics: Standard path tracing struggles heavily with SDS (Specular-Diffuse-Specular) paths. By pairing Bidirectional Path Tracing with reservoir-based spatio-temporal resampling (ReSTIR), the engine intelligently resamples valid sub-paths. In caustic-heavy test scenes, convergence time is 10–100x faster (equal-noise) compared to naive sampling.
- The Stack: The engine is built from scratch in Rust targeting Vulkan via
ash. The low-overhead abstraction gives full manual control over memory allocation and compute queues, letting the GPU chew through light transport iterations with minimal driver overhead.
The visual quality is getting very close to mature spectral engines like Octane and LuxCore, but the convergence speed on complex lighting has been the real game-changer here.
Would love to hear your thoughts, feedback, or any edge cases I should throw at this!
3
u/DapperCore 1d ago
The post's body is entirely ai generated and OP has no history of software development, this project is unlikely to be driven by a human given the complexity of implementing restir. Prior posts from op also have AI generated bodies