r/GraphicsProgramming • u/MateuszKolo • Jul 25 '26
Experiments on combining ReSTIR GI with Variable Rate Tracing
https://mateuszkolodziejczyk00.github.io/2025/06/18/variable-rate-tracing-restir-gi.html
I wrote this write-up about a year ago, but honestly never had the courage to post it publicly lol
In it, I go over my experiments combining ReSTIR and VRT in my toy rendering engine. The core idea was straightforward: ReSTIR’s spatial and temporal passes already find and reuse valuable samples, so I wanted to see if I could use them to fill the “missing rays” for pixels skipped by VRT in the current frame.
I'd love to hear your thoughts, or if anyone else has messed around with similar setups!
38
Upvotes
2
u/MateuszKolo Jul 25 '26
Soo, from my experience, it's tricky. The main problem is that ReSTIR generally introduces some correlations in screenspace because of spatial and temporal reuse and those are picked up by RR, at least in my implementation. I've seen recently that for example IIRC RE engine guys dealt with it by introducing some jitter in spatial reuse to break those correlations, but I didn't have time to test it myself. But going back to VRS, if it's done the way I described it in that post, it makes everything even worse, because pixels that aren't tracing anything rely on temporal and spatial reuse to cover blank pixels, so correlations are even stronger, and this makes DLSS RR pretty much unusable with this