NVIDIA VXGI Dynamic Global Illumination inside Unreal Engine 4


Important! The results as displayed below are based upon a outdated version of both Unreal Engine 4 and VXGI.
There have been many interesting updates to VXGI since the publication of this post and I’ll do a review on the latest version shortly.


A while ago NVIDIA announced its new Dynamic GI called VXGI.
Now integrated in a separate branch of Unreal Engine 4, I couldn’t resist doing some tests for fun and stuff.

  • Watch the video on my Vimeo:
  • Or on NVIDIA’ Youtube (with different music so it’s a whole new experience! Well, kinda…):
  • Couple of renders taken directly from several testscenes with the ‘highres’ screenshot ability (1920×1080):

 

So what gives? Is this relatively new dynamic GI method worth giving a closer look? I reckon it is! Currently the most accurate solution available, nothing comes close if you’re talking about quality versus performance. Even though still a beta, it already impresses with really good colorbleed, AO and its single light bounce. Add to that NVIDIA is looking into integrating a second bounce whilst improving the output and you’ve got a really strong contender for dynamic GI in games and maybe even Arch-Viz.


Important! The results as displayed below are based upon a outdated version of both Unreal Engine 4 and VXGI.
There have been many interesting updates to VXGI since the publication of this post and I’ll do a review on the latest version shortly.


Good:

  • Not limited to ‘Maxwell’ GPU’s (!)
  • Accurate ColorBleed from Diffuse
  • Ambient Occlusion (as opposed to Screen Space Ambient Occlusion)
  • Stunning GI from Emissive materials
  • Specular tracing offers an interesting alternative to SSR
  • Looks fairly good on low-settings/low-performance impact
  • Can look incredible on high/extreme settings
  • Excellent tweak and management controls
  • Fairly good range before quality degrades

Bad:

  • Requires recompile of Master Materials for Voxelization
  • Recompiling Master Materials takes longer than acceptable.
  • Poor stability when certain scenes include animated assets.
  • Prone to small lighting errors even on fully static scenes.
  • No GI from lit particles.
  • Does not support all Material types.
  • Specular tracing yields rather low resolution for reflections.
  • Small objects still need SSAO and SSR or will ‘float’.
  • Can be tricky to tweak for scene-specific circumstances.
  • Separate Unreal Branch, lagging behind core developments.
  • Slim chance of ever getting integrated into main branch.

Important! The results as displayed below are based upon a outdated version of both Unreal Engine 4 and VXGI.
There have been many interesting updates to VXGI since the publication of this post and I’ll do a review on the latest version shortly.


 

In short:
Promising.
When it works it looks really good.
It does however come with a few strings attached so to call this production-ready
is simply too soon. I’ll be keeping my eyes on this one for sure!

Performance:
With the above in mind, performance was a good surprise. I have a GTX Titan GPU (not a Titan X!) and my pc can be considered ‘average’ by today’s standards. Even though VXGI can be easily set to cripple your fps (32 cones, very low trace-step etc.), if you keep things on defaults or around that range, it still allows you to have the experience without your scene becoming a slideshow. This is of course a generic impression and since polycount and scene-complexity (number of lights contributing to VXGI, shadows etc.) do impact VXGI, I guess for now performance is as good as you want it depending on your hardware and your scene-specifics.

Note: Even though this demo wasn’t done in 2 hours (creating the scenes, rendering the clips and putting the lot together took me 2 days total). It’s kind off important to mention none of it was made with the intend to impress on scene-fidelity or complexity. Geometry was kept deliberately simple as were materials, as was lighting. I was most interested in the core functionality of this tech and didn’t want to go all out before even mastering the basics. As such you should judge the quality on a different basis as if this was a video made to reflect any kind of realism. Freely translated you could close this with ‘If it already looks like this on nothing but some quick experiments, imagine what it can look like if given some hardcore lovin’ 😉

I hope you enjoyed reading all of the above!


What IS VXGI?

1) VXGI .PDF by NVIDIA

2) GPU Technology Conference NVIDIA VXGI presentation

2) NVIDIA Gameworks on Unreal Engine 4 Forum