SSGI (screen-space global illumination) in WebGPU.
Technically this is "near-field diffuse screen-space ray-traced indirect lighting".
We trace SSAO, and as we sweep arcs - we also integrate lighting along the occluded arc.
This is a very natural extension to GTAO or any other horizon-based technique, as it already sweeps arcs.
The irradiance is encoded in a u32 texture using rgb999e5, so it's quite compact.
I'm not doing any denoising here, in practice you would apply at least spatial denoising.
Writeup: discourse.threejs.org/t/ssgi-screen-…
Capsaicin is not just for tacos, it's also our developer rendering framework!
v1.3 is out now:
🌶️ Added heat with GI-1.2, which includes multiple-bounce indirect lighting.
🌶️ HDR support with spicier tone mapping.
And much, much more: gpuopen.com/learn/gi-1-2-m…
A bit technical thread 🧵
I’ve been improving the in-game ambient occlusion system - and ended up with something I call:
Blob-based Analytical Ambient Occlusion on Primitives
Here’s what it does to the final image:
(more examples later in the thread)
(1/16)
I'm working on a AO and GI for my game. For that reason I'm extending @Mirko_Salm's GT-VBAO (based on @volfaze's work). I've done two things so far:
- Sampling a distant light instead of computing AO
- Added a heuristic for estimating occluder thickness
Details and links below
@Mirko_Salm Nice! For the cosine weighted version, if you do a dot product with the tangent (of projected normal) instead of view, I think samples would already be in cosine space and won't require acos
@NickChapmn (3/3) Maybe a more accurate way to do this would be to reweight the final contribution so it adds up to 1 (untested). Just removing the term and assuming the sample covers the entire sector is certainly more correct.
Hi, @volfaze , regarding the 'Screen Space Indirect Lighting with Visibility Bitmask' paper - first off great work, it's such a clever idea. It's fantastic to get realtime indirect illumination, even if it is in screen space :)
GT-VBGI: Ground Truth Visibility Bitmask Global Illumination: shadertoy.com/view/lfdBWn. image: GT-VBGI (left) vs. Reference (right). 2. image: the same as the 1., but converged. GT-VBGI matches the results of a brute force ray-marcher.
unidirectional GT-VBAO: shadertoy.com/view/Xc3yzs
1. image: GT-VBAO (left) vs. Reference (right); single direction.
2. image: the same as the 1., but converged.
No need having to always ray march bidirectionally anymore.
GT-VBAO: Ground Truth Visibility Bitmask Ambient Occlusion: shadertoy.com/view/XXGSDd
1. image: GT-VBAO (left) vs. Reference (right).
2. image: the same as the 1., but converged.
GT-VBAO matches the results of a brute force ray-marcher. This work was partially funded by @1000orks.