NVIDIA GameWorks Integration

Hey, I’m kinda curious since you specify ‘HBAO+ / HBAO+ 4’ for some of the builds.
It’s a bit confusing since there’s already a feature in the VXGI builds that’s called hbao.

I’m assuming what’s in the VXGI builds is actually the Voxel AO / VXAO.
While when you specify HBAO+, it’s the screen-space HBAO from a separate branch?
( aka the one from here NVIDIA ShadowWorks | NVIDIA Developer , but without shadowworks itself, which doesn’t seem to have any kind of UE4 implementation yet. )

VXAO and HBAO+ are in fact two different bits. HBAO+ also is in VXGI builds by default, just not sure if it’s HBAO+4. Maxime, 0lento or Alexey would know better on the differences there. And ShadowWorks is something totally different from the ambient occlusion stuff.

What would that process look like? Is that something simple to do?

Hi Alexey,

Not sure if this is easily fixed but making a typo when entering a voxelsize in the console (example ~32 as opposed to 32) will crash the editor.

It’s HBAO+ from VXGI2 branch. I specify it separately as it’s a separate GameWorks tech from Nvidia, it’s not coupled with VXGI technically in any way, they just chose to distribute them at same merged branch.

Meaning, you can technically strip out all VXGI code from the nvidia VXGI branch and have only HBAO+ left and it still works (we’ve done that for UE4.15 when I didn’t need VXGI for anything).

thank you for this important information. If there is a way to have a more optimized VXGI I will do whatever I can. If you send me an email or something like that I can send a scene to reproduce. And also dynamic shadow cost is a big deal in Unreal for open world. If its performance will be improved too, with VXGI, Unreal would be a better position for open world to compare with CryEngine.

Hey, what’s up UE4 community. I’ve returned to Unreal Engine after being away for 2 years. I was one of the early developers who kept begging Epic to implement a dynamic GI solution after SVOGI got canned. Things looked grim for me until I came across VXGI and started following it. Now after seeing the cool new results being achieved with 2.0, now feels like the time to return back to UE4!


Hey dude, I want to thank you for your work on VXGI. It reinvigorated my interest in real time rendering again and it’s cool to see you’re on the forums. I was wondering, with the latest Ray tracing announcements from Nvidia and Microsoft, what will the future of VXGI look like? Will it continue to be its own thing or will it eventually merge with those new technologies?

Yes, HBAO+ 4 is integrated in the VXGI branch.
ShadowWorks is a marketing name for the collection of HBAO+, PCSS and HFTS: NVIDIA ShadowWorks | NVIDIA Developer
UE4 has a PCSS feature of its own, but HFTS is not integrated, as far as I know.

Implementing single-pass cascaded shadow maps is not exactly simple. Overall, it would replace the regular CSM rendering passes with one coarsest cascade, and use multiple viewports to represent all the cascades at once. The new pass will use a FastGS shader to multicast each triangle into a number of those viewports, depending on which cascades it intersects with. There may be complications though: if shadow maps are too large, the DX limit on viewport size (+/- 16k pixels) can become a limiter, in which case it will be two passes instead of one. There also may be some accuracy issues.

We have a sample that does this (in GL):

This was fixed yesterday. I added some validation/clamping on the important cvars. Turns out ~32 translates to just 0.

​​​​​​​You’re welcome! :slight_smile:
Yes, VXGI is playing in the same field as the ray tracing tech, sort of. And it doesn’t give the same level of image quality. But VXGI is much faster than ray tracing, if you implement similar effects using both. There are some possible paths for them to converge, like using RT for mirror reflections and VXGI for everything else, or using RT for contact shadows. We’ll look into that.

I made a performance experiment with VXGI for open world. (with performance tweaks such as map size X, Y, Z 64) And the results on GTX 980Ti & i7 5930K.
4x4 level with average tree density.


importing FBX takes crazy long. is that VXGI build spesific bug or 4.19 related?

I haven’t personally noticed that issue. Larger FBX files, of course, take longer to import. Or if there are issues with the mesh.

yea looks like im doing something wrong when exporting fbx from houdini

I finally got VXGI 2.0 installed on my computer and I have to say, I’m having a blast with this! As someone who does a lot of offline rendering, real time G.I is the future. I’m finding it incredibly hard to go back to the likes of Vray and Mental Ray after using this. Instant feedback is so much more satisfying than waiting for an image to render.

Best of all, I’m doing this all on a GTX 960. A $200 card from from 3 years is doing GIobal Illumination at 30 to 60 frames a second!

I posted more of my work here.…omment_2630278

Hi, any news ETA on flex for 4.19?

There are a couple branches now that have it. Mentioned in this thread.

@Derjyn. I looked and I cannot find a a branch that has flex and all the other tech, could you please show me where you saw that branch with flex and flow and VXGI? in 4.19?

It was quoted within the last couple pages of this thread, when someone asked the same thing. Then a few pages before that. And I think a few pages before that :stuck_out_tongue:

sorry, i got the modes mixed up, but the question remains: is it possible to use only VXGI in this new version, without VXAO?

With the help of [USER=“688828”]MASSIVE Can[/USER], the shadow map rendering performance issue has been fixed. Enabling VXGI on a directional light doesn’t have a significant effect on the ShadowDepths pass anymore.

Please note that VXGI has nothing to do with ray tracing, unlike the title of your page suggests. It’s voxel cone tracing.

​​​​​​​Sure - just don’t enable “VXGI Ambient” in PPV settings.
To clarify:

  • The r.VXGI.AmbientOcclusionMode=1 setting switches VXGI into a mode where it only deals with opacity voxels, not emittance. Those can be used for VXAO or VXAL.
  • VXAO is, in a way, a by-product of the diffuse illumination pass. So, if you enable VXGI Diffuse, VXAO comes in for free (if enabled).
  • Most PPV settings in the VXGI Diffuse group also affect VXAO, because it’s the same rendering pass.

If anybody has merged Flex with VXGI2, Blast and Flow to 4,19, please point in the right direction. Thanks!

I’m still waiting official Flex integration to drop myself. It’s not difficult to merge the old version, it’s just bit pointless if Nvidia is releasing improved Flex 1.2 soon for UE4 (which I hope they do as Flex 1.2 SDK itself has been out for two month or so). No official word if they are doing this however.