NVIDIA VXGI and WaveWorks integration

Over the weekend I integrated both VXGI and WaveWorks into my UE4 build, made a scene and thought it would be cool to tell and show you guys some result.

Details:

The scene contains one directional light, everything is dynamic and rendered in realtime.
It ran at an avg. of ~22 FPS, with min at 18 and max at 24.

Settings generally:
Everything was at max, usually referred to as Epic, temporal AA, rendered at my monitor’s native 2560x1440 with a screen percentage at 100%.

Settings exceptions:
I did not use vxgi specular tracing as it turns SSR off and I did want to have that post effect, I did try it but it was a pretty easy visual call at the end especially as it would have cost a few additional frames. Light propagates with multiple bounces.

Conditions:
Recorded with FRAPS ran as a standalone from the Editor (minimized, realtime unchecked) as it was already 2:30am and packaging failed the first try.

This is my machine that this was made and ran at:

Motherboard: Z97-DELUXE(NFC & WLC)
PSU: Cooler Master “V Series” V850
CPU: Intel® Core™ i7-4790K 4.6Ghz
CPU cooler: Hydro Series™ H100i Extreme Performance
GPU: GeForce GTX TITAN X
RAM: G.SKILL Trident X Series 32GB (4 x 8GB) DDR3 2400 Mhz
SSD: Samsung SSD 850 PRO 256GB
HDD: WD Green 2TB
CASE: NZXT. Phantom 410 Black

Additional:

  • During development there was on average 9.3GB of vram in usage and about 19GB of ram.
  • It would be great if everybody would get to see the original video that is 9.42GB in size, compression in this video takes its toll.
  • I’m planning to release a special Titan X version of a finished demo, not locked to it, just recommended, memory.
  • I manually toggle between fast/slow day/night cycle during the video.

Comparison, top image is before integration, bottom after.


Awesome thanks for sharing dude. Without VXGI and WW, how did it ran?

Also, how did you integrated both?

Looks really nice!

Can’t wait to get a new GPU, I run at less fps then that just boxing in shapes for things with the VXGI build.

No problem, since I’m not at home during most of the week, ironically in my day job I work with Unity, I’ve done tests via Teamviewer so take them with a grain of salt, should still hold relatively.

VXGI, with multi-bounce (official description of this is: “Experimental support for multi-bounce indirect illumination, by fetching VXGI irradiance output from the previous frame”):
~21 FPS

VXGI without multi-bounce:
~26.5 FPS

No VXGI:
~78 FPS

WaveWorks performed about 0.5 FPS better than the default ocean material. That could probably be a whole different story if you ran it on AMD GPU, because of the lower tessellation throughput, but my level probably wasn’t big / complex enough to cause any bottlenecks there.

This may sound silly although it was interesting, I found all the code from Nvidia’s builds and ported it over to my code, along with libraries.

Thanks, Haha, no worries man, it’s still a very high end feature it should be some time before we get this in mainstream games.

They should really make plugins of it

Not sure about their plugin system, these features, specially VXGI are quite tightly integrated into the engine. Maybe something along the lines of a patch would be an option.

It’d be great if you could have plug-ins that change the engine completely, but you’d really have to start worrying about conflicts between plug-ins

Exactly, the cool thing is even with assets as expensive as the kite demo ones it does work (on available hardware).
With less expensive assets I think we’re not too far away.

This just makes me smile and feel all warm and fuzzy inside, we’ve been wishing and waiting for this since forever, realistic consumer graphics, virtual reality, everything is finally coming together.