diff --git a/content/posts/newsletter-014/diff-gi.gif b/content/posts/newsletter-014/diff-gi.gif new file mode 100644 index 000000000..bfdd1140e Binary files /dev/null and b/content/posts/newsletter-014/diff-gi.gif differ diff --git a/content/posts/newsletter-014/index.md b/content/posts/newsletter-014/index.md index 9e6948b73..e4f58e9c1 100644 --- a/content/posts/newsletter-014/index.md +++ b/content/posts/newsletter-014/index.md @@ -421,6 +421,32 @@ The source code [can be found here][bevy-flappy-src]. [bevy-flappy-video]: https://youtube.com/watch?v=Qjc0V58lB7A [bevy-flappy-src]: https://github.com/TanTanDev/flappy_bevy +### [Real-Time Global Illumination in WGPU][gi-post] + +[![diff-gi-gif](diff-gi.gif)][gi-post] +_Infinite light bounces in Cornell Box_ + +[DI2edd] shared his [real-time diffuse global illumination demo on /r/rust_gamedev][gi-post]. +It's written in 100% Rust and uses WGPU for graphics, proving that the API +is an excellent choice even for advanced computer graphics applications. + +The technique provides real time global illumination for static lambertian +geometry, and is the implementation of the 2017 paper ["Real-time Global +Illumination by Precomputed Local Reconstruction +from Sparse Radiance Probes"](https://arisilvennoinen.github.io/Projects/RTGI/index.html), +which proposes a spherical harmonics-based approach to solve the rendering equation +in real time. + +In practice, this means that the expensive light transport calculations are performed +in a precomputation step, which relies on - among others - [embree-rs], +and [nalgebra] to produce a compressed +representation of the scene that is then used for lighting reconstruction at runtime. + +[gi-post]: https://reddit.com/r/rust_gamedev/comments/ixocl2/real_time_diffuse_global_illumination +[DI2edd]: https://reddit.com/u/DI2edd +[embree-rs]: https://github.com/Twinklebear/embree-rs +[nalgebra]: https://github.com/dimforge/nalgebra + ## Library & Tooling Updates ### [Thunderdome]