NVIDIA GameWorks Integration

I’m working on something for that right now as a matter of fact.
It’s actually quite interesting. Right of the bat you could argue that VXGI should always beat VXAO because it actually includes the GI but I’m not so sure where it concerns a RealTime environment.
To be honest, and this might come across a very bald statement, but how often do you REALLY notice good GI? I can only speak for myself but I’m always way more drawn to good quality shadowing
and occlusion. Anyways, more on this subject later.

I had both Screenspace AO’s off on purpose so they didn’t influence the VXAO whatsoever but yeah, for small details HBAO+ is actually very sweet.
SSAO not so much. It’s got it’s uses but most of that is already filed by VXAO. SSDO would be a very nice middle filler here but alas. We know where to find that one.

From my limited playing with things right now I’d say the one major limiter on good quality VXAO/VXGI in larger outdoor scenes (no not talking 8x8km maps here)
is that you just run out of voxels way too quickly and boosting them to them max (mapsize 256) is such a performance killer that one might wonder why that mapsize
is accessible in the first place. Guess it could come in handy with output from cinematics. For RT it’s unusable.
In the latest version we have this VXGI anchor gizmo introduced. It basically shifts the point of origin for Voxelization LOD0. I’m very much hoping NVIDIA will
elaborate on this system. Ideally I want to be able to draw or set a Voxel Volume(s) where I can get more consitent/stable lighting over longer range.
Not sure if that’s doable at all. Probably very tricky indeed.

I also prefer great shadows than GI if i have to choose. Im looking forward to see your tests of an indoor space with VXAO, did you plan to test also an indoor scene in CryEngines SVOTI for comparison?

I would say global illumination is best when you don’t notice it, because it should look natural to you. Without indirect lighting you would have pure black shadows. True, you can use a Skylight, but that doesn’t always work out that well. In outdoor scenes it mostly does, but indoors not so much.
Actually, if you would have the perfect global illumination the occlusion would be automatically be part of it. We do ambient occlusion because we can’t afford to do it the physically correct way through global illumination, it would be just too expensive. :slight_smile:

I tried to visualize what I mean by playing with Koola’s Lightroom scene: Playing with GI - Album on Imgur
I’m not an artists and this was thrown together fairly quick, but I tried :confused:

I’ll certainly look at what’s possible. CryEngine’ pipeline is quite different so it might be best to do initial comparisons based on something uncomplicated :rolleyes:

That’s actually really interesting. Very nicely done!

Has anyone been able to get the Fluid surface rendering working in VR? Or is that still in development with Flex?

Hi Guys,

i tried the HairWorks version on githud and have a compile error. I’m not a progger. Can anyone me say how i can fix this problem? I used the last pull from 29 Jan 2016.


Regarding VXAO, I think anyone going to use it should think of it less as an AO solution and more like a replacement for DFAO or Capsule indirect shadows. It’s not going to notice fine details, like HBAO+ would; rather, being a world space solution, it’s strength lies in it’s consistency, and scale. The purpose of AO in general is to simulate indirect shadows. Indirect shadows are very, very soft, and personally I find that fine detail is not near as valuable as range and consistency.

Has anyone managed to integrate the Volumetric Lighting into UE4 yet? I am in the process of doing so and am struggling with some values. I would be much appreciated if someone (anyone) could lend me a helping hand. So that I can get the changes up into github so people can start playing around.

If someone from NVIDIA wants to jump in and help me, that would be great. I am willing to share what I have done so far, but its very very broken.

The closest I’ve gotten, is making a grid of translucent planes in my level, and having them enable/disable based on if you are in the room. It’s slow, but effective.

Yeah Ive done that method before, I was referring to the NVIDIA Volumetric Lighting GameWorks code:

Gotcha. My experience with programming is limited to a semester of Basic in high school, and C++ for dummies. The fact that I made a blueprint to build the plane grid was an accomplishment.

Has anyone got Turbulence to work with VXGI - i.e. particles that contribute to the bounce lighting?

Nevermind - got it to work by changing the material of the particles to opaque.


Although it would be nice if vxgi would work with translucent materials (i.e. having color bleeding that affects the way smoke works).

Excuse,GRB PhysX and Flow, FlameWorks, VolumeLight,TureEffects,HFTS will join the UE4 after it?

Oh god. nVidia Faceworks was public on github? Is there any tests on that using ue4?

Hey. Yea I’m trying the same thing. Haven’t made any real progress yet, it’s more of a learning curve (a very, very steep one) :o

Is yours on Github ? The reason I’m asking is I would like to know how you get access to the Device Context ? Do you make use of the FD3D11DeviceContext from FD3D11DynamicRHI ? Or do you create a new RHI Instance ?

EDIT: Never Mind. Got it working :slight_smile:

You got it all working? Or just getting the context? My main issue seems to relate to getting the right ViewProjection matrix for the shadow map and the right LightToWorld matrix. (Only working with directional lights thus far) If I debug using renderdoc, I can see that it is generating data, but it is being projected onto the near plane only.

No only got the right Context, so I’m very far behind you…