Realtime Dynamic GI + Reflections + AO + Emissive - AHR

Actually, it technically shouldn’t cost much more for unlimited bounces. All you have to do is inject the light and color information into the voxel texture in the first frame, then in each subsequent frame, combine the lighting then revoxelize the scene. The initial bounce only has to be done once in the first frame, thus for multiple bounces you are only actually voxelizing and cone tracing once per frame using a feedback loop. Then an additional cone tracing pass for the final output to the screen.

I’ve achieved for a voxel cone tracing engine I made in OpenGL a couple of years ago. I did have to manually tweak some parameters to get proper converging results for the bounces.

I thought voxelizing the scene is what took so much time…

Not if you’re writing directly to a 3D texture using the geometry shader - is really fast in comparison to the cone tracing.

, how are you writing to the the 3D texture? Are you doing in a compute shader?
UE4 doesn’t seem to allow the use of rwtextures for pixel shaders. In OpenGL I was able to directly write to textures in the pixel shader. I believe is also allowed in dx11 but ue4 isn’t set up for it.

RWRawBuffer on the pixel shader. About the unlimited bounces, that works good if your scene is completely static, but if something move you’ll have to discard all the results. But your idea got me thinking. It could be possible to create another, lower resolution grid and incrementally trace the scene on each Voxel, and spread it over a few frames. Use that as a low frequency ambient term, then combine it with the high resolution grid for AO and short range GI. Could work… Also, about the voxelization and rsm rendering time, I’m working on separating static and dynamic objects, and only voxelize/ render statics once, voxelize / render the dynamics every frame and composite. For the rsm I can do that as well, but i also have to take into account the light can move, so I’m gonna spread it over a few frames.

My opengl engine used unlimited bounces with a fully dynamic scene without that problem: https://www.youtube.com/watch?v=2UfSw_Fipuc

I can’t seem to find any reference to RWRawBuffer in the engine documentation or dx11 documentation. Does use UAVs?

Yep, UAVs. Will check the code and tell you in a minute. But you got me thinking, and I think I have an idea to use something like that. Will have more updates soon.

btw, I don’t even use RSMs. I just straight out voxelize the scene with direct lighting.

Just keep your eye’s peeled people, Me and are working on a combined branch of our works called the JamTiago branch. When complete it will BLOW your mind. Been playing with Ryans system, were just kicking out bugs and adding features right now, but still bloody . Stay tuned

Just a quick update. It’s looking good, and on schedule. Working on voxelizing static objects only once right now.

So keen to test out in a puzzle environment :smiley:

That changes on the voxel stage are working. Static objects get voxelized only once. It actually worked really good, reduced time a lot. I will do the same with RSMs over the week, and then get emissive working. After that, it will be fixing a few bugs and a public beta. Also, I’m working on a system based on something like irradiance probes, but can’t talk a lot about it right now. Still working the basics of the system. Should bring a really big improvement both on quality and performance, but too early to say for sure.

, you are a saint of UE4 :smiley: I am really looking forward to see more ^^
Good luck with your coding, hopefully it doesn’t get frustrating after a while :slight_smile:

Greetz,
Dakraid

is genuinely looking interesting. Since we’re currently working on a game with fully dynamic global illumination and will be implementing a lot of very heavy and changes constantly throughout gameplay, if you need someone to do brute force large scale testing, I’d be happy to try integrating into one of our builds. I tend to attract bugs, so you know… fair warning.

What you’ve got looks pretty promising! Keep it up!

Absolutely amazing man. Been watching thread for a while and it just keeps getting better and better. Been trying to figure out the right lighting setup for the game my company is working on and it’s been kind of hit or miss since as of now most the levels are indoor/closed. Still amazing work though man.

is all sounding too good to be true :slight_smile: Do you have any estimates on what kind of spec GPU is required to run at 1080@30fps whilst under a respective load (draw calls, deferred lights, FX)?

Getting about that with my GTX 750 Ti

We are working on ideas to speed up even further, Patience is key here.

Wow really? :smiley:

Yep. Can’t say more…