NVIDIA GameWorks Integration

Any update on VXGI 2.0? How performance improvement should we expect?

Hey, I was able to compile what you uploaded, but im unable to access NVIDIA flow. am i missing something? are there some extra steps i need to be following?

I’m having a problem with UE4 and Hairworks for sometime now.
Both in FurViewer and AnimBP, the hair move realistically with my character.
When I try it in game though, the hair move slowly as if they have less gravity.
What I mean is that they stay more time in air and they follow slowly my character’s animations.
Is there an option somewhere or is this common with UE4 and Nvidia Hairworks?

For some reason I can’t create a new thread , so that’s why I post it here

I’m seeking for a merged git of HairWorks and VXGI for the UE 4.19, someone has it under his hand ?

i am waiting for VXGI 2.0 to do this one :wink:

Oh? I will wait then, thanks.

I am SO excited for vxgi 2.0 - to meet visual targets for our game!! Are we looking at 4.19 + vxgi 2.0 release before May, still, or has it been pushed back? :3

Hi everyone,

UE 4.19 branch with VXGI 2.0 is up on GitHub:

I’ll try to answer your questions about it here.

Nice job !
Now just have to wait for the merged GameWorks git ^^

They’ve updated Flow for 4.19 as well:

I’d also love to get some NVIDIA staff response on what’s going on with the TXAA’s UE4 integration. They also seem to neglect the issue thread on the repo about it. I could never get it to work (it compiles but it looks 100% same as Unreals built-in TAA, I have exactly same ghosting with it so it’s safe to say it’s not really running on TXAA). The branch on TXAA is also pretty old (based on 4.16) and it has some issues, like if you resize the viewport in editor it will just crash right away.

Ok, I’ll ping the author of that branch (or take a look at it myself).

THAT TIMING, THOUGH!! dies happily

I just went ahead and ported the TXAA integration to 4.19 and fixed the crash on viewport resize. It’s not perfect (e.g. I expect the dynamic resolution feature will not work properly yet), but it’s better than before.

To make sure that you’re using TXAA and not built-in TAA, do something to break it, for example set r.TXAA.EnableColorClipping to 0 and observe trailing artifacts when moving the camera.


Hey while you are here I have question.

Did you considered optimizing Voxelization pass to not happen every frame ? Ie. do not revoxelize static objects, voxelize further cascades less often (every N frames). Etc ?

On complex scenes consistently even on 1080ti Voxelization pass is most time consuming. It would do wonders to make VXGI more scalable to lower end hardware.

Why when allow static light is disconnected, in case of switching on of vxgi 2.0, the engine crash? Почему когда отключен allow static light, при включении vxgi 2.0, движок крашется?

Thank you, I’ll check the new branch :slight_smile:

I noticed this as well. If you disable static lighting from project settings and enable VXGI, engine will crash immediately on VxgiRendering.cpp while trying to read nonexisting SceneContext.GBufferE.

Fixed. Исправлено. :slight_smile:

Considered - yes, implemented - not yet.

There are two feasible options. One is to only update dynamic objects (not just UE-dynamic, but also moving static meshes) and regions that were not covered on the previous frame. This is somewhat problematic because it relies on the engine being able to compute accurate bounding boxes for dynamic objects, and also update parts of the static objects that happen to intersect with dynamic. Adding direct lights makes this even more fun because shadows potentially depend on objects far away, and objects that receive the shadows then also need to be updated.

The second option is to freeze the voxel representation for some number of frames while the game/project knows that things are static. This is relatively easy, but it will lead to stutter when something does change, and voxelization needs to happen. A more advanced version of this would perform voxelization of a complex scene over multiple frames, while VXGI lighting will be either turned off or based on the previous voxel data (with the latter requiring changes to VXGI itself to handle two sets of voxel data).