NVIDIA GameWorks Integration

It’s weird because when I disable UE4’s SSAO, I don’t get any other sort of AO.
r.VXGI.AmbientOcclusionMode=1 does show the AO pretty well but when I set it back to 0 I don’t get to see any AO in the full shading mode.

  1. If you end up with a black scene upon enabling VXAO, make sure you have a active Skylight in your scene (it helps, if not for initial check if all works only)
  2. If you want VXAO as your default mode, you have to add the cvar to the engine’ ConsoleVariables.ini located in X:\YourVXGIbuild\Engine\Config folder.
  3. You can isolate AO only by checking ‘Ambient Occlusion’ as buffer visualization (located in menu where it normally says ‘Lit’
  4. Works together with SSAO and HBAO+
  5. Diffuse tracing should still be enabled. Things like VXGI range etc. still matter since your scene will still need to be voxelized.
  6. Tweak VXAO via the ‘Ambient’ section located between Diffuse and Specular
  7. Test with setting Diffuse Color to anything but the default black.

Results -if setup properly- should be very good AO.
It’s also much faster than full VXGI.

Hope that helps!

Below is Directional light with VXGI active. UE4 SSAO intensity set to 0.

Below is r.VXGI.AmbientOcclusionMode 1

Below is AO viz:

So no VXAO…

(Sky light didn’t do anything to AO) (VXGI settings are all defaults)

thank god, i was going crazy yesterday.

i had a couple of scenes setup nicely and seemed to get VXAO pass to work for a minute but when i reopened the projects, shadows are pitch black.

also turning AOmode on and off would mess up my VXGI in a very random way. hope someone knows what is really going on.
is what emanuel said is correct?

@KillingWord > Yes :slight_smile:
@Maximum-Dev > Could you dropbox or so that scene? Obviously it should just work. It’s probably a very simple thing but right now I’m kinda out of ideas.

@Alexey.Panteleev and the rest of NVIDIA VXGI team:

Could you guys PLEASE reconsider your point on VXGI not going to support Lightmap baking? I for one would be super thrilled if it actually would do such a thing.
It’s not only that it would offer faster (albeit inferior to Lightmass) baking, by itself this would already be a HUGE plus (you could crank VXGI up to very high settings for your bake etc.)
Equally important is you’d be way more flexible with lighting your level and you’d gain the additional benefit of being able to work with reflection probes.
I fully realize VXGI was conceived as a dynamic-only system but I hope you guys agree that -given it’s current high-end hardware demand- this is infact a big limiter on deployment and flexibility.

Ok I have put another small scene together. You can download below.

This is how it looks. (Multi bounce enabled)

In case you can also put a small scene together where it is working and share it with us it’d be great.

Thanks guys.

I delete the r.VXGI.AmbientOcclusionMode=1 from the console and when i change the color from black to blue and rise the scale, all in the “VXGI Ambient” section and i do get results in the viewport, however when i visualize the “Ambient Occlusion” in the “Buffer Visualization” i do have the AO but when i change its settings nothing happens, on the contrary if i set the Buffer to VXGI Diffuse i do get to see the changes even if is just in the diffuse as it suppose to be.

Also, the stronger the VXAO the whiter (or whatever color the AO is) the scene gets. To the point that i can completely turn off the lights and the whole scene will have just that Ambient lighting from the VXAO…, i have never used AO before in a Game Engine, does rising AO suppose to white out the scene??


Ok my bad on the Skylight. Make sure when you use one it actually has something to sample from surroundings. A Skylight in a black box won’t work :D. I put a cubemap in the Skylight included in the sample so it works but just keep this in mind.
Check out the renewed sample and if you have any questions shoot.

Well ehm, it’s supposed to do exactly the opposite so that’s a…no :slight_smile:
So we’re clear on what you’re doing exactly: What do you mean by rising the scale?
Screenshots help!

Here’s some additional info:

  1. Scale is a multiplier for the VXAO term.
    In this case, a small scale will actually give you more ‘diffuse’ AO.
    So yeah, if you abuse this parameter you can actually invert things.

I still don’t see any AO.

How’s it looking on your end?

You sure you put the correct mode ON again? (It will default to VXGI if you have that enabled in your project but that shouldn’t matter much for actually seeing AO anyways)

Here’s some shots:


I don’t have a VXGI Ambient component between Diffuse and Specular. I think I gotta grab my hammer and go to our programmer. :slight_smile:

Thank you for your time.

Aaah that explains a lot :slight_smile:
It got added in the latest version on GitHub iirc.

Btw, SVOGI in cryengine seems like to provide some larger scale AO that works really good for trees and such without actually applying that much AO to small objects and everything in the world. (See the gif below)

I don’t really have much information about it since I haven’t been using it for a long while. But is there some sort of thing to do in UE4 as well? (Asking is better since I don’t have the VXAO atm as well)

I wrote a short ‘first impressions’ on SVOGI/SVOTI/Total Illumination a couple of days back (
I think their implementation is absolutely stunning. Especially in conjunction with Lightprobes!
Currently in the process of trying to mimic the effects with VXGI (and still failing albeit getting closer)
I’m afraid without the probes we’re not going to get a spot on match but we can try for a ‘as best as possible’.
VXGI/VXAO does offer large scale occlusion though.

I hope you achieve something close BUT with acceptable performance for games. At least while playing on a 980 :wink:

hi folks,

thanks again chesire for going in depth.
the file is super helpful.

i will experiment some more but going from the dropbox project, just trying to bounce the light from some objects does not seem to work.
also as soon as i delete the skylight VXGI is goes black. as if the world space AO just simply overrides the GI.

probably my newbishness at work here.

Light is actually not hitting the ball in a way that it can go back to the wood surfaces. the light that’s hitting the green ball is coming then towards the camera.

Hey guys.

Thanks for the help Chesire and all that have contribute.

I was having issues because i did not have an skylight in my scene, previously the scene was just illuminated with a directional light that with VXGI illuminates by bouncing lighting everything. But when i enable VXAO with r.VXGI.AmbientOcclusionMode 1 i need an skylight or everything that does not receive light will be black. So, does VXAO does not work together with VXGI Diffuse??