I was wondering, as a means to optimise RTGI in multibounce scenarios (let say 4 bounces) instead of calculating the bounces of each rays on one frame, wouldn’t it be better to calculate the first bounce, denoise it, then store the directions of the rays of the second bounce and wait for the next frame to calculate the second bounce only, and then repeat ? And reprocess the first bounce only when the 4th has finished it’s computation.
That way the RTGI would be 4 bounces with only 4 additional frames of delay.
Take a loot at this museum worthy paint illustration (lel) :
Yes indeed, however, depending on the lightsource, would it be “that” problematic ? for example if it’s the sunlight, unless the sun decides for some reason to move very fast or that there is so much wind that clouds moves very fast, it would’t change the percieved light that much no ?
I can see a problem for the first bounce though, if an object moves then it will be too visible.
Let’s say in this case, the first bounce is calculated at every frame but the additional bounces light results are interpolated between multiple frames ?
Sadly I lack the skills to simulate such a behaviour, but I’m sure something can be done, sadly one bounce only RTGI is really not very accurate (the “too dark” areas in metro exodus)
Rays are already done over time, temporal denoising is already in and there’s a ton of fancy papers and etc. on making it better.
But since you’re interested the solution that I suspect you’ll see in any next gen game that wants great GI, is cached bidirectional pathtracing. That’s a mouthful, but basically think of it like this: You just trace one bounce, then whatever that hits you say, light that hit with volumetric lightmaps. And there we go, it looks like multibounce, and works too and from any dynamic geo, and has problems with large moving geometry and lacking multibounce effects of moving geo and etc. But, but, is cheap enough to do in realtime, so yeah that’s probably what’s going to happen.
Fortunately if you can get volumetric lightmaps to be dynamic, like multiple games have already done (see God of War 4 and etc.) you can have changing time of day and weather and blah blah blah. It’s not perfect, you can’t blow up or build every level in realtime. But the key is that it’ll work.