There is an update to radiance cascades out to make them perform better in 3D.
I really like the general idea behind the technique but haven't had time to play with a custom implementation yet.
There is an update to radiance cascades out to make them perform better in 3D.
I really like the general idea behind the technique but haven't had time to play with a custom implementation yet.
I'm getting nerdsniped by Holographic Radiance Cascades (it's so jargon-heavy it basically has its own lore, but it's a bag of tricks for real-time raytraced lights/shadows)
Efficiently calculating global illumination has always been one of the greatest challenges in computer graphics. Algorithms for approximating global illumination have always struggled to run in realtime for fully dynamic scenes, and have had to rely heavily on stochastic raytracing, spatialtemporal denoising, or undersampled representations, resulting in much lower quality of lighting compared to reference solutions. Even though the problem of calculating global illumination in 2D is significantly simpler than that of 3D, most contemporary approaches still struggle to accurately approximate 2D global illumination under realtime constraints. We present Holographic Radiance Cascades: a new single-shot scene-agnostic radiance transfer algorithm for global illumination, which is capable of achieving results visually indistinguishable from the 2D reference solution at realtime framerates. Our method uses a multi-level radiance probe system, and computes rays via combining short ray intervals as a replacement for conventional raytracing. It runs at constant cost for a given scene size, taking 1.85ms for a 512x512 pixel image and 7.67ms for 1024x1024 on an RTX 3080 Laptop.
I've updated my #RadianceCascades implementation (2D GI shader). It's still a bit of a mess.
https://github.com/kornelski/bevy_flatland_radiance_cascades
Learning Bevy compute shaders by poorly implementing 2D Radiance Cascades algorithm for global illumination - kornelski/bevy_flatland_radiance_cascades
After a bunch of bugfixes #RadianceCascades start to look like something.
It was necessary to correctly center the probes, and interpolate accurately.
The parameters must really meet the penumbra hypothesis, otherwise it breaks down with light leaks, moire patterns, and gaps between cascades.
I'll probably have to add mipmaps for density and light sources to make them thicker.
"... we look through the recent Radiance Cascades paper from the devs of Path of Exile 2, explore the ideas behind their approach ..."
https://www.youtube.com/watch?v=3so7xdZHKxw
"Radiance Cascades: New Approach to Calculating Global Illumination"
Paper: https://drive.google.com/file/d/1L6v1_7HY2X-LV3Ofb6oyTIxgEaP4LOI6/view
Older article /w video: https://80.lv/articles/radiance-cascades-new-approach-to-calculating-global-illumination/
#GraphicsProgramming #GameDev #GlobalIllumination #RadianceCascades #Sannikov
The #RadianceCascades algorithm is brilliant: observes that ambient occlusion and environment cubemaps are the same thing, but with different spatial vs angular resolutions, and it's possible to smoothly vary the resolutions, and interpolate between them.
I'm trying to implement #RadianceCascades for flatland global illumination.
2^i rays per cascade looks awful when starting with 4 rays (I need to fix interpolation too).
All the demos seem to use 2^(2*i) rays, but that blows up memory usage.