Yeah, I remember that paper. It wasn't even close to realtime, but I've been thinking about how to get rid of a lot of the overhead from that. I mean, they rendered all the geometry six times to get a voxel representation, and, why not just have some sort of proxy voxels for everything already.
In this video the guy says that you cannot implement this with deferred rendering (at like 2:30). Either he doesn't know what he's talking about because the guy showing the UE4 demo said that they were using deferred rendering, or they are using a different technique.. I haven't read the paper on it yet but does anyone know what sort of rendering architectures are compatible with the technique described in the video (deferred, forward, multipass etc)?
@m6d think that's Light Propgation Volumes? I'm also unsure as to why he's relating 'deferred shading' to the initial radiance injection using a RSM...
-------
Bear in mind that graphics are just a part of the whole, and so the simple graphics I have posted do not represent the full extents of the engine at all.
L. Spiro
I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid
In the original voxel cone tracing demo, they add dynamic objects to the voxel octree by injecting the voxels, then rebuilding the octree, which allows dynamic objects to cast indirect light (aka the moving hand).
Assuming UE4 uses this same method, I'm a bit worried about the performance implications in terms of dynamic objects. In their demo, they don't see to have problems because there's only a handful of dynamic objects. But, if you wanted to have a building collapse, or just a room full of boxes... I'm skeptical that you would be able to inject that many objects and rebuild the octree in a reasonable amount of time. We'll see.
Nevertheless, their implementation is really sweet...
In the original voxel cone tracing demo, they add dynamic objects to the voxel octree by injecting the voxels, then rebuilding the octree, which allows dynamic objects to cast indirect light (aka the moving hand).
Assuming UE4 uses this same method, I'm a bit worried about the performance implications in terms of dynamic objects. In their demo, they don't see to have problems because there's only a handful of dynamic objects. But, if you wanted to have a building collapse, or just a room full of boxes... I'm skeptical that you would be able to inject that many objects and rebuild the octree in a reasonable amount of time. We'll see.
I'm fairly certain that this is the bottleneck they solved. The demo, as you said, didn't seem to have any problem, and is apparently running on a single gtx 680 with all that other stuff going on. The paper's method slowed to an absolute crawl on GTX 480 when absolutely anything was moved.